Skip to content

Commit 89d99d4

Browse files
committed
process_batch upon __serialize__
1 parent 7609d59 commit 89d99d4

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

client_code/auto_batch.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,13 @@ def __repr__(self):
198198
def __iter__(self):
199199
return iter(dict(self.row).items())
200200

201+
@if_not_deleted
202+
def __serialize__(self, global_data):
203+
if _add_queue or _update_queue or _delete_queue:
204+
print("AutoBatch: process_batch triggered early by row __serialize__")
205+
process_batch()
206+
return self.__dict__
207+
201208
@property
202209
def cache(self):
203210
return self._cache
@@ -219,6 +226,12 @@ def __getitem__(self, index):
219226
def __len__(self):
220227
return len(self._search_iterator)
221228

229+
def __serialize__(self, global_data):
230+
if _add_queue or _update_queue or _delete_queue:
231+
print("AutoBatch: process_batch triggered early by search iterator __serialize__")
232+
process_batch()
233+
return self.__dict__
234+
222235

223236
@portable_class
224237
class BatchTable(anvil.tables.Table):
@@ -283,6 +296,12 @@ def get_batch_row(self, row):
283296

284297
def retrieve_batch_row(self, row):
285298
return self._batch_rows[row.get_id()]
299+
300+
def __serialize__(self, global_data):
301+
if _add_queue or _update_queue or _delete_queue:
302+
print("AutoBatch: process_batch triggered early by table __serialize__")
303+
process_batch()
304+
return self.__dict__
286305

287306
def clear_cache(self):
288307
for batch_row in self._batch_rows.values():
@@ -294,7 +313,6 @@ def of_row(row):
294313
return get_table_by_id(row._table_id)
295314

296315

297-
@portable_class
298316
class BatchTables:
299317
def __init__(self):
300318
self._name_list = list(anvil.tables.app_tables)

0 commit comments

Comments
 (0)