Skip to content

Commit 540a192

Browse files
Set default progress_bar option to None
This change sets the default value of `bigframes.options.display.progress_bar` to `None`. This means progress bars will be disabled by default, instead of automatically detecting the environment ("auto"). Users can still enable them by setting the option to "auto", "terminal", or "notebook". This change also adds a unit test to verify the default value and the behavior of the option context manager.
1 parent 95763ff commit 540a192

File tree

3 files changed

+259
-2
lines changed

3 files changed

+259
-2
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Copyright 2025 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
import bigframes
16+
17+
18+
def test_progress_bar_default():
19+
assert bigframes.options.display.progress_bar is None
20+
21+
22+
def test_progress_bar_context_manager():
23+
with bigframes.option_context("display.progress_bar", "terminal"):
24+
assert bigframes.options.display.progress_bar == "terminal"
25+
26+
assert bigframes.options.display.progress_bar is None

third_party/bigframes_vendored/pandas/core/config_init.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ class DisplayOptions:
8484
"""
8585

8686
# Options unique to BigQuery DataFrames.
87-
progress_bar: Optional[str] = "auto"
87+
progress_bar: Optional[str] = None
8888
"""
89-
Determines if progress bars are shown during job runs. Default "auto".
89+
Determines if progress bars are shown during job runs. Default None.
9090
9191
Valid values are `auto`, `notebook`, and `terminal`. Set
9292
to `None` to remove progress bars.

unit_tests_output.txt

Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
1+
============================= test session starts ==============================
2+
platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.6.0
3+
rootdir: /app
4+
configfile: pytest.ini
5+
plugins: snapshot-0.9.0
6+
collected 1195 items / 8 skipped
7+
8+
tests/unit/_config/test_bigquery_options.py ............................ [ 2%]
9+
..... [ 2%]
10+
tests/unit/_config/test_compute_options.py . [ 2%]
11+
tests/unit/_config/test_display_options.py .. [ 3%]
12+
tests/unit/_config/test_experiment_options.py .... [ 3%]
13+
tests/unit/_config/test_threaded_options.py . [ 3%]
14+
tests/unit/_tools/test_strings.py ............................... [ 6%]
15+
tests/unit/bigquery/test_json.py . [ 6%]
16+
tests/unit/bigquery/test_ml.py ........ [ 6%]
17+
tests/unit/bigquery/test_obj.py ........... [ 7%]
18+
tests/unit/core/compile/googlesql/test_expression.py ...x. [ 8%]
19+
tests/unit/core/compile/googlesql/test_function.py . [ 8%]
20+
tests/unit/core/compile/googlesql/test_query.py ...x................ [ 9%]
21+
tests/unit/core/compile/sqlglot/aggregations/test_binary_compiler.py .. [ 10%]
22+
tests/unit/core/compile/sqlglot/aggregations/test_nullary_compiler.py .. [ 10%]
23+
. [ 10%]
24+
tests/unit/core/compile/sqlglot/aggregations/test_op_registration.py .. [ 10%]
25+
tests/unit/core/compile/sqlglot/aggregations/test_ordered_unary_compiler.py . [ 10%]
26+
. [ 10%]
27+
tests/unit/core/compile/sqlglot/aggregations/test_unary_compiler.py .... [ 10%]
28+
............................. [ 13%]
29+
tests/unit/core/compile/sqlglot/aggregations/test_windows.py .......... [ 14%]
30+
tests/unit/core/compile/sqlglot/expressions/test_ai_ops.py ............. [ 15%]
31+
... [ 15%]
32+
tests/unit/core/compile/sqlglot/expressions/test_array_ops.py ...... [ 16%]
33+
tests/unit/core/compile/sqlglot/expressions/test_blob_ops.py ... [ 16%]
34+
tests/unit/core/compile/sqlglot/expressions/test_bool_ops.py ... [ 16%]
35+
tests/unit/core/compile/sqlglot/expressions/test_comparison_ops.py ..... [ 16%]
36+
..... [ 17%]
37+
tests/unit/core/compile/sqlglot/expressions/test_datetime_ops.py ....... [ 17%]
38+
........................ [ 20%]
39+
tests/unit/core/compile/sqlglot/expressions/test_generic_ops.py ........ [ 20%]
40+
.............. [ 21%]
41+
tests/unit/core/compile/sqlglot/expressions/test_geo_ops.py ............ [ 22%]
42+
... [ 23%]
43+
tests/unit/core/compile/sqlglot/expressions/test_json_ops.py ........... [ 24%]
44+
[ 24%]
45+
tests/unit/core/compile/sqlglot/expressions/test_numeric_ops.py ........ [ 24%]
46+
.................................... [ 27%]
47+
tests/unit/core/compile/sqlglot/expressions/test_string_ops.py ......... [ 28%]
48+
........................ [ 30%]
49+
tests/unit/core/compile/sqlglot/expressions/test_struct_ops.py .. [ 30%]
50+
tests/unit/core/compile/sqlglot/expressions/test_timedelta_ops.py .. [ 30%]
51+
tests/unit/core/compile/sqlglot/test_compile_aggregate.py .. [ 30%]
52+
tests/unit/core/compile/sqlglot/test_compile_concat.py .. [ 31%]
53+
tests/unit/core/compile/sqlglot/test_compile_explode.py .. [ 31%]
54+
tests/unit/core/compile/sqlglot/test_compile_filter.py . [ 31%]
55+
tests/unit/core/compile/sqlglot/test_compile_geo.py ... [ 31%]
56+
tests/unit/core/compile/sqlglot/test_compile_isin.py .. [ 31%]
57+
tests/unit/core/compile/sqlglot/test_compile_join.py ........ [ 32%]
58+
tests/unit/core/compile/sqlglot/test_compile_random_sample.py . [ 32%]
59+
tests/unit/core/compile/sqlglot/test_compile_readlocal.py ..... [ 32%]
60+
tests/unit/core/compile/sqlglot/test_compile_readtable.py ........ [ 33%]
61+
tests/unit/core/compile/sqlglot/test_compile_window.py .... [ 33%]
62+
tests/unit/core/compile/sqlglot/test_scalar_compiler.py ......... [ 34%]
63+
tests/unit/core/compile/sqlglot/test_sqlglot_types.py .... [ 35%]
64+
tests/unit/core/logging/test_data_types.py .................... [ 36%]
65+
tests/unit/core/logging/test_log_adapter.py ................ [ 38%]
66+
tests/unit/core/rewrite/test_identifiers.py ..... [ 38%]
67+
tests/unit/core/rewrite/test_slices.py ... [ 38%]
68+
tests/unit/core/sql/test_ml.py ................. [ 40%]
69+
tests/unit/core/test_bf_utils.py ...... [ 40%]
70+
tests/unit/core/test_blocks.py ....... [ 41%]
71+
tests/unit/core/test_expression.py ........ [ 41%]
72+
tests/unit/core/test_guid.py .... [ 42%]
73+
tests/unit/core/test_ibis_types.py ..................................... [ 45%]
74+
................ [ 46%]
75+
tests/unit/core/test_indexes.py .. [ 46%]
76+
tests/unit/core/test_pyarrow_utils.py .... [ 47%]
77+
tests/unit/core/test_pyformat.py ............................. [ 49%]
78+
tests/unit/core/test_slices.py ................. [ 51%]
79+
tests/unit/core/test_sql.py ........................... [ 53%]
80+
tests/unit/core/test_windowspec.py ........... [ 54%]
81+
tests/unit/core/tools/test_bigquery_schema.py .................... [ 55%]
82+
tests/unit/core/tools/test_datetimes.py .. [ 56%]
83+
tests/unit/display/test_html.py ...... [ 56%]
84+
tests/unit/functions/test_function_template.py ....................... [ 58%]
85+
tests/unit/functions/test_function_typing.py ... [ 58%]
86+
tests/unit/functions/test_remote_function.py ....... [ 59%]
87+
tests/unit/functions/test_remote_function_utils.py ..................... [ 61%]
88+
................................. [ 63%]
89+
tests/unit/ml/test_api_primitives.py .s [ 64%]
90+
tests/unit/ml/test_compose.py ..s........... [ 65%]
91+
tests/unit/ml/test_forecasting.py ... [ 65%]
92+
tests/unit/ml/test_golden_sql.py ............ [ 66%]
93+
tests/unit/ml/test_matrix_factorization.py ........... [ 67%]
94+
tests/unit/ml/test_pipeline.py .s. [ 67%]
95+
tests/unit/ml/test_sql.py .................................. [ 70%]
96+
tests/unit/operations/test_output_schemas.py ...................... [ 72%]
97+
tests/unit/session/test_clients.py ......... [ 73%]
98+
tests/unit/session/test_io_arrow.py .................... [ 74%]
99+
tests/unit/session/test_io_bigquery.py ...................... [ 76%]
100+
tests/unit/session/test_io_pandas.py ...s....... [ 77%]
101+
tests/unit/session/test_local_scan_executor.py ........... [ 78%]
102+
tests/unit/session/test_metrics.py ............. [ 79%]
103+
tests/unit/session/test_read_gbq_colab.py .... [ 79%]
104+
tests/unit/session/test_read_gbq_query.py . [ 79%]
105+
tests/unit/session/test_read_gbq_table.py ........... [ 80%]
106+
tests/unit/session/test_session.py ..................................... [ 83%]
107+
..................... [ 85%]
108+
tests/unit/session/test_time.py . [ 85%]
109+
tests/unit/test_clients.py ....... [ 86%]
110+
tests/unit/test_constants.py . [ 86%]
111+
tests/unit/test_daemon.py .. [ 86%]
112+
tests/unit/test_dataframe.py .........................s... [ 89%]
113+
tests/unit/test_dataframe_io.py .............. [ 90%]
114+
tests/unit/test_dtypes.py ................... [ 91%]
115+
tests/unit/test_features.py ....... [ 92%]
116+
tests/unit/test_formatting_helpers.py ................. [ 93%]
117+
tests/unit/test_index.py ... [ 94%]
118+
tests/unit/test_local_data.py ........ [ 94%]
119+
tests/unit/test_notebook.py . [ 94%]
120+
tests/unit/test_pandas.py .................................... [ 97%]
121+
tests/unit/test_planner.py .... [ 98%]
122+
tests/unit/test_sequences.py ...... [ 98%]
123+
tests/unit/test_series.py ..... [ 99%]
124+
tests/unit/test_series_io.py ........... [100%]
125+
126+
=============================== warnings summary ===============================
127+
tests/unit/_config/test_bigquery_options.py::test_setter_raises_if_session_started[client_endpoints_override-original_value8-new_value8]
128+
tests/unit/_config/test_bigquery_options.py::test_setter_if_session_started_but_setting_the_same_value[client_endpoints_override-original_value7]
129+
/app/bigframes/_config/bigquery_options.py:384: UserWarning: This is an advanced configuration option for directly setting
130+
endpoints. Incorrect use may lead to unexpected behavior or system
131+
instability. Proceed only if you fully understand its implications.
132+
warnings.warn(msg)
133+
134+
tests/unit/_config/test_bigquery_options.py::test_setter_if_session_started_but_setting_the_same_value[use_regional_endpoints-True]
135+
/app/tests/unit/_config/test_bigquery_options.py:94: PreviewWarning: Use of regional endpoints is a feature in preview and available only
136+
in selected regions and projects.
137+
setattr(options, attribute, original_value)
138+
139+
tests/unit/_config/test_bigquery_options.py::test_setter_if_session_started_but_setting_the_same_value[use_regional_endpoints-True]
140+
/app/tests/unit/_config/test_bigquery_options.py:99: PreviewWarning: Use of regional endpoints is a feature in preview and available only
141+
in selected regions and projects.
142+
setattr(options, attribute, original_value)
143+
144+
tests/unit/bigquery/test_json.py::test_json_set_w_invalid_json_path_value_pairs
145+
/app/bigframes/core/utils.py:228: PreviewWarning: The JSON-related API `json_set` is in preview. Its behavior may change
146+
in future versions.
147+
warnings.warn(bfe.format_message(msg), category=bfe.PreviewWarning)
148+
149+
tests/unit/core/compile/sqlglot/aggregations/test_binary_compiler.py: 1 warning
150+
tests/unit/core/compile/sqlglot/expressions/test_array_ops.py: 1 warning
151+
tests/unit/core/compile/sqlglot/expressions/test_generic_ops.py: 1 warning
152+
tests/unit/core/compile/sqlglot/expressions/test_struct_ops.py: 1 warning
153+
tests/unit/core/test_pyformat.py: 4 warnings
154+
tests/unit/core/tools/test_datetimes.py: 2 warnings
155+
tests/unit/functions/test_remote_function.py: 7 warnings
156+
tests/unit/session/test_io_arrow.py: 1 warning
157+
tests/unit/session/test_io_bigquery.py: 4 warnings
158+
tests/unit/session/test_io_pandas.py: 1 warning
159+
tests/unit/session/test_local_scan_executor.py: 11 warnings
160+
tests/unit/session/test_read_gbq_colab.py: 4 warnings
161+
tests/unit/session/test_read_gbq_query.py: 1 warning
162+
tests/unit/session/test_read_gbq_table.py: 4 warnings
163+
tests/unit/session/test_session.py: 57 warnings
164+
tests/unit/test_dataframe.py: 26 warnings
165+
tests/unit/test_dataframe_io.py: 14 warnings
166+
tests/unit/test_index.py: 3 warnings
167+
tests/unit/test_series.py: 4 warnings
168+
tests/unit/test_series_io.py: 11 warnings
169+
/app/bigframes/testing/mocks.py:152: UnknownLocationWarning: The location 'test-region' is set to an unknown value. Did you mean
170+
'us-east5'?
171+
bqoptions = bigframes.BigQueryOptions(
172+
173+
tests/unit/core/compile/sqlglot/test_compile_readtable.py::test_compile_readtable_w_system_time
174+
/home/jules/.pyenv/versions/3.12.12/lib/python3.12/site-packages/pluggy/_callers.py:121: TimeTravelCacheWarning: Reading cached table from 2025-11-09 03:04:05.678901+00:00 to avoid
175+
incompatibilies with previous reads of this table. To read the latest
176+
version, set `use_cache=False` or close the current session with
177+
Session.close() or bigframes.pandas.close_session().
178+
res = hook_impl.function(*args)
179+
180+
tests/unit/core/compile/sqlglot/test_compile_readtable.py::test_compile_readtable_w_columns_filters
181+
/home/jules/.pyenv/versions/3.12.12/lib/python3.12/site-packages/pluggy/_hooks.py:512: TimeTravelCacheWarning: Reading cached table from 2025-11-09 03:04:05.678901+00:00 to avoid
182+
incompatibilies with previous reads of this table. To read the latest
183+
version, set `use_cache=False` or close the current session with
184+
Session.close() or bigframes.pandas.close_session().
185+
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
186+
187+
tests/unit/functions/test_remote_function.py::test_deploy_udf
188+
/app/tests/unit/functions/test_remote_function.py:117: PreviewWarning: udf is in preview.
189+
deployed = session.deploy_udf(my_remote_func)
190+
191+
tests/unit/functions/test_remote_function.py::test_deploy_udf_with_name
192+
/app/tests/unit/functions/test_remote_function.py:129: PreviewWarning: udf is in preview.
193+
deployed = session.deploy_udf(my_remote_func, name="my_custom_name")
194+
195+
tests/unit/session/test_session.py::test_session_init_fails_with_no_project
196+
/home/jules/.pyenv/versions/3.12.12/lib/python3.12/unittest/mock.py:1861: DefaultLocationWarning: No explicit location is set, so using location US for the session.
197+
return f(*args, **kw)
198+
199+
tests/unit/session/test_session.py::test_session_init_fails_with_no_project
200+
/home/jules/.pyenv/versions/3.12.12/lib/python3.12/site-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored in: <function Session.__del__ at 0x7f37f1e1ec00>
201+
202+
Traceback (most recent call last):
203+
File "/app/bigframes/core/logging/log_adapter.py", line 183, in wrapper
204+
return method(*args, **kwargs)
205+
^^^^^^^^^^^^^^^^^^^^^^^
206+
File "/app/bigframes/session/__init__.py", line 281, in __del__
207+
self.close()
208+
File "/app/bigframes/core/logging/log_adapter.py", line 183, in wrapper
209+
return method(*args, **kwargs)
210+
^^^^^^^^^^^^^^^^^^^^^^^
211+
File "/app/bigframes/session/__init__.py", line 403, in close
212+
bigframes.core.events.SessionClosed(self.session_id)
213+
^^^^^^^^^^^^^^^
214+
File "/app/bigframes/core/logging/log_adapter.py", line 229, in wrapped
215+
return prop(*args, **kwargs)
216+
^^^^^^^^^^^^^^^^^^^^^
217+
File "/app/bigframes/session/__init__.py", line 340, in session_id
218+
return self._session_id
219+
^^^^^^^^^^^^^^^^
220+
AttributeError: 'Session' object has no attribute '_session_id'. Did you mean: 'session_id'?
221+
222+
Enable tracemalloc to get traceback where the object was allocated.
223+
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
224+
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
225+
226+
tests/unit/test_dataframe.py::test_dataframe_semantics_property_future_warning
227+
/app/bigframes/_config/experiment_options.py:41: FutureWarning: Semantic operators are deprecated, and will be removed in the future
228+
warnings.warn(msg, category=FutureWarning)
229+
230+
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
231+
===== 1188 passed, 13 skipped, 2 xfailed, 170 warnings in 62.69s (0:01:02) =====

0 commit comments

Comments
 (0)