Skip to content

Commit 0350feb

Browse files
committed
Undo part of last July 15 commit: BatchTable.batch_row
1 parent 25a162f commit 0350feb

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

client_code/_users.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .auto_batch import unwrap_any_input_rows, BatchRow
1+
from .auto_batch import unwrap_any_input_rows, wrap_row
22
import anvil.users
33

44

@@ -7,5 +7,4 @@ def force_login(*args, **kwargs):
77

88

99
def get_user(*args, **kwargs):
10-
raw_out = anvil.users.get_user(*args, **kwargs)
11-
return BatchRow(raw_out) if raw_out else None
10+
return wrap_row(anvil.users.get_user(*args, **kwargs))

client_code/auto_batch.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,21 @@ def wrapper(self, *args, **kwargs):
6969
return wrapper
7070

7171

72+
def wrap_row(row):
73+
if row is None:
74+
return None
75+
batch_table = get_table_by_id(row._table_id)
76+
return batch_table.batch_row(row)
77+
78+
7279
def _wrap_any_rows(value):
7380
def _is_row_but_not_batch_row(thing):
7481
return isinstance(thing, anvil.tables.Row) and not isinstance(thing, BatchRow)
7582

7683
if _is_row_but_not_batch_row(value):
77-
return BatchRow(value)
84+
return wrap_row(value)
7885
elif isinstance(value, list) and value and _is_row_but_not_batch_row(value[0]):
79-
return [BatchRow(row) for row in value]
86+
return [wrap_row(row) for row in value]
8087
else:
8188
return value
8289

@@ -227,7 +234,7 @@ def __init__(self, search_iterator):
227234
self._search_iterator = search_iterator
228235

229236
def __getitem__(self, index):
230-
return BatchRow(self._search_iterator[index])
237+
return wrap_row(self._search_iterator[index])
231238

232239
def __len__(self):
233240
return len(self._search_iterator)
@@ -259,13 +266,14 @@ def get(self, *args, **kwargs):
259266
print("AutoBatch: process_batch triggered early by get")
260267
process_batch()
261268
raw_out = unwrap_any_input_rows(self.table.get)(*args, **kwargs)
262-
return BatchRow(raw_out) if raw_out else None
269+
return self.batch_row(raw_out) if raw_out else None
263270

264271
def get_by_id(self, row_id, *args, **kwargs):
265272
if row_id in self._batch_rows:
266273
return self._batch_rows[row_id]
267274
else:
268-
return BatchRow(self.table.get_by_id(row_id, *args, **kwargs))
275+
row = self.table.get_by_id(row_id, *args, **kwargs)
276+
return BatchRow(row)
269277

270278
def add_row(self, **column_values):
271279
global _add_queue
@@ -284,7 +292,11 @@ def delete_all_rows(self, *args, **kwargs):
284292

285293
def add_batch_row(self, batch_row):
286294
self._batch_rows[batch_row.get_id()] = batch_row
287-
295+
296+
def batch_row(self, row):
297+
retrieved = self._batch_rows.get(row.get_id())
298+
return retrieved if retrieved else BatchRow(row)
299+
288300
def __serialize__(self, global_data):
289301
if _add_queue or _update_queue or _delete_queue:
290302
print("AutoBatch: process_batch triggered early by table __serialize__")

0 commit comments

Comments
 (0)