Skip to content

Commit e6d3bc1

Browse files
committed
change the order of initialization sequence
1 parent b0eb621 commit e6d3bc1

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

bigframes/display/anywidget.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,20 @@ def __init__(self, dataframe: bigframes.dataframe.DataFrame):
6262
super().__init__()
6363
self._dataframe = dataframe
6464

65+
# Initialize attributes that might be needed by observers FIRST
66+
self._table_id = str(uuid.uuid4())
67+
self._all_data_loaded = False
68+
self._batch_iter: Optional[Iterator[pd.DataFrame]] = None
69+
self._cached_batches: List[pd.DataFrame] = []
70+
6571
# respect display options for initial page size
6672
initial_page_size = bigframes.options.display.max_rows
67-
self.page_size = initial_page_size
6873

6974
# Initialize data fetching attributes.
70-
self._batches = dataframe.to_pandas_batches(page_size=self.page_size)
75+
self._batches = dataframe.to_pandas_batches(page_size=initial_page_size)
7176

72-
# Use list of DataFrames to avoid memory copies from concatenation
73-
self._cached_batches: List[pd.DataFrame] = []
74-
75-
# Unique identifier for HTML table element
76-
self._table_id = str(uuid.uuid4())
77-
self._all_data_loaded = False
78-
# Renamed from _batch_iterator to _batch_iter to avoid naming conflict
79-
self._batch_iter: Optional[Iterator[pd.DataFrame]] = None
77+
# Now it's safe to set traitlets properties that trigger observers
78+
self.page_size = initial_page_size
8079

8180
# len(dataframe) is expensive, since it will trigger a
8281
# SELECT COUNT(*) query. It is a must have however.

0 commit comments

Comments
 (0)