Skip to content

Commit dae54a4

Browse files
committed
fix presubmit
1 parent 124258e commit dae54a4

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

bigframes/display/anywidget.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,16 @@ def __init__(self, dataframe: bigframes.dataframe.DataFrame):
7575
# Initialize data fetching attributes.
7676
self._batches = dataframe.to_pandas_batches(page_size=initial_page_size)
7777

78-
# set traitlets properties that trigger observers
79-
self.page_size = initial_page_size
80-
8178
# len(dataframe) is expensive, since it will trigger a
8279
# SELECT COUNT(*) query. It is a must have however.
8380
# TODO(b/428238610): Start iterating over the result of `to_pandas_batches()`
8481
# before we get here so that the count might already be cached.
8582
self.row_count = len(dataframe)
8683

84+
# set traitlets properties that trigger observers
85+
self.page_size = initial_page_size
86+
self._reset_batches_for_new_page_size()
87+
8788
# get the initial page
8889
self._set_table_html()
8990

@@ -187,19 +188,21 @@ def _reset_batches_for_new_page_size(self):
187188

188189
def _set_table_html(self):
189190
"""Sets the current html data based on the current page and page size."""
190-
start = self.page * self.page_size
191-
end = start + self.page_size
192-
193-
# fetch more data if the requested page is outside our cache
194-
cached_data = self._cached_data
195-
while len(cached_data) < end and not self._all_data_loaded:
196-
if self._get_next_batch():
197-
cached_data = self._cached_data
198-
else:
199-
break
200-
201-
# Get the data for the current page
202-
page_data = cached_data.iloc[start:end]
191+
# For empty dataframe, render empty table with headers.
192+
if self.row_count == 0:
193+
page_data = self._cached_data
194+
else:
195+
start = self.page * self.page_size
196+
end = start + self.page_size
197+
198+
# fetch more data if the requested page is outside our cache
199+
cached_data = self._cached_data
200+
while len(cached_data) < end and not self._all_data_loaded:
201+
if self._get_next_batch():
202+
cached_data = self._cached_data
203+
else:
204+
break
205+
page_data = cached_data.iloc[start:end]
203206

204207
# Generate HTML table
205208
self.table_html = bigframes.display.html.render_html(
@@ -218,8 +221,5 @@ def _page_size_changed(self, _change: Dict[str, Any]):
218221
# Reset the page to 0 when page size changes to avoid invalid page states
219222
self.page = 0
220223

221-
# Reset batches to use new page size for future data fetching
222-
self._reset_batches_for_new_page_size()
223-
224224
# Update the table display
225225
self._set_table_html()

0 commit comments

Comments
 (0)