bigframes 2.2.0__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (737) hide show
  1. {bigframes-2.2.0/bigframes.egg-info → bigframes-2.4.0}/PKG-INFO +5 -3
  2. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_config/__init__.py +18 -0
  3. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_config/bigquery_options.py +20 -9
  4. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_config/compute_options.py +9 -1
  5. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_config/display_options.py +4 -0
  6. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_config/experiment_options.py +46 -18
  7. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/__init__.py +2 -0
  8. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/json.py +34 -0
  9. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/blob/_functions.py +32 -0
  10. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/array_value.py +0 -27
  11. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/blocks.py +31 -71
  12. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/__init__.py +6 -2
  13. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/api.py +2 -32
  14. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/scalar_op_compiler.py +57 -13
  15. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/sqlglot/compiler.py +67 -54
  16. bigframes-2.4.0/bigframes/core/compile/sqlglot/scalar_compiler.py +77 -0
  17. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/sqlglot/sqlglot_ir.py +52 -7
  18. bigframes-2.4.0/bigframes/core/guid.py +46 -0
  19. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/indexes/__init__.py +2 -0
  20. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/indexes/base.py +24 -5
  21. bigframes-2.4.0/bigframes/core/indexes/datetimes.py +56 -0
  22. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/local_data.py +20 -4
  23. bigframes-2.4.0/bigframes/core/pyarrow_utils.py +87 -0
  24. bigframes-2.4.0/bigframes/core/pyformat.py +111 -0
  25. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/identifiers.py +8 -10
  26. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/sql.py +15 -3
  27. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/tools/datetimes.py +6 -1
  28. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/utils.py +20 -0
  29. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/dataframe.py +76 -21
  30. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/forecasting.py +21 -0
  31. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/llm.py +27 -12
  32. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/loader.py +1 -0
  33. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/metrics/_metrics.py +2 -2
  34. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/__init__.py +16 -7
  35. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/blob.py +48 -65
  36. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/date_ops.py +19 -0
  37. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/datetime_ops.py +4 -4
  38. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/datetimes.py +49 -1
  39. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/numeric_ops.py +22 -2
  40. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/string_ops.py +27 -12
  41. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/strings.py +16 -10
  42. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/pandas/__init__.py +2 -0
  43. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/pandas/io/api.py +104 -3
  44. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/series.py +68 -7
  45. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/__init__.py +186 -15
  46. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/_io/bigquery/__init__.py +1 -9
  47. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/_io/bigquery/read_gbq_table.py +10 -1
  48. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/bq_caching_executor.py +163 -148
  49. bigframes-2.4.0/bigframes/session/dry_runs.py +138 -0
  50. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/executor.py +36 -19
  51. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/loader.py +120 -11
  52. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/local_scan_executor.py +10 -16
  53. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/read_api_execution.py +21 -22
  54. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/testing/mocks.py +19 -3
  55. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/version.py +2 -2
  56. {bigframes-2.2.0 → bigframes-2.4.0/bigframes.egg-info}/PKG-INFO +5 -3
  57. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes.egg-info/SOURCES.txt +19 -1
  58. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes.egg-info/requires.txt +4 -2
  59. {bigframes-2.2.0 → bigframes-2.4.0}/setup.py +6 -3
  60. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/conftest.py +4 -12
  61. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/blob/test_function.py +24 -22
  62. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_forecasting.py +3 -0
  63. bigframes-2.4.0/tests/system/large/streaming/test_bigtable.py +104 -0
  64. bigframes-2.4.0/tests/system/large/streaming/test_pubsub.py +114 -0
  65. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/test_dataframe_io.py +7 -13
  66. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/load/test_llm.py +2 -1
  67. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_array.py +50 -6
  68. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_datetime.py +49 -0
  69. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_json.py +28 -0
  70. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/blob/test_io.py +0 -6
  71. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/blob/test_properties.py +21 -37
  72. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/blob/test_urls.py +0 -5
  73. bigframes-2.4.0/tests/system/small/core/indexes/test_datetimes.py +46 -0
  74. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/conftest.py +0 -18
  75. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_llm.py +19 -32
  76. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_multimodal_llm.py +53 -5
  77. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_datetimes.py +73 -0
  78. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_strings.py +66 -0
  79. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_timedeltas.py +25 -0
  80. bigframes-2.4.0/tests/system/small/session/test_read_gbq_colab.py +75 -0
  81. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_dataframe.py +38 -1
  82. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_dataframe_io.py +70 -2
  83. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_index_io.py +2 -2
  84. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_progress_bar.py +1 -1
  85. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_series.py +26 -1
  86. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_series_io.py +1 -1
  87. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_session.py +107 -5
  88. bigframes-2.4.0/tests/unit/_config/test_compute_options.py +22 -0
  89. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/_config/test_experiment_options.py +0 -15
  90. bigframes-2.4.0/tests/unit/core/compile/sqlglot/__init__.py +13 -0
  91. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/sqlglot/compiler_session.py +4 -2
  92. bigframes-2.4.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_projection/test_compile_projection/out.sql +12 -0
  93. bigframes-2.4.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal/out.sql +176 -0
  94. bigframes-2.4.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_json_df/out.sql +9 -0
  95. bigframes-2.4.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_lists_df/out.sql +46 -0
  96. bigframes-2.4.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_structs_df/out.sql +26 -0
  97. bigframes-2.4.0/tests/unit/core/compile/sqlglot/test_compile_projection.py +31 -0
  98. bigframes-2.4.0/tests/unit/core/test_pyarrow_utils.py +65 -0
  99. bigframes-2.4.0/tests/unit/core/test_pyformat.py +145 -0
  100. bigframes-2.4.0/tests/unit/core/tools/__init__.py +13 -0
  101. bigframes-2.4.0/tests/unit/core/tools/test_datetimes.py +43 -0
  102. bigframes-2.4.0/tests/unit/functions/__init__.py +13 -0
  103. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/polars_session.py +1 -1
  104. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/session/test_io_bigquery.py +3 -4
  105. bigframes-2.4.0/tests/unit/session/test_read_gbq_colab.py +68 -0
  106. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_local_data.py +20 -0
  107. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/config_init.py +6 -0
  108. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/frame.py +22 -6
  109. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/indexes/accessor.py +131 -0
  110. bigframes-2.4.0/third_party/bigframes_vendored/pandas/core/indexes/datetimes.py +106 -0
  111. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/series.py +8 -2
  112. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/strings/accessor.py +32 -7
  113. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q11.py +1 -1
  114. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/version.py +2 -2
  115. bigframes-2.2.0/bigframes/core/compile/sqlglot/scalar_compiler.py +0 -33
  116. bigframes-2.2.0/bigframes/core/guid.py +0 -21
  117. bigframes-2.2.0/tests/system/large/test_streaming.py +0 -81
  118. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal/out.sql +0 -171
  119. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_json_df/out.sql +0 -4
  120. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_lists_df/out.sql +0 -41
  121. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_structs_df/out.sql +0 -21
  122. {bigframes-2.2.0 → bigframes-2.4.0}/LICENSE +0 -0
  123. {bigframes-2.2.0 → bigframes-2.4.0}/MANIFEST.in +0 -0
  124. {bigframes-2.2.0 → bigframes-2.4.0}/README.rst +0 -0
  125. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/__init__.py +0 -0
  126. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_config/sampling_options.py +0 -0
  127. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_tools/__init__.py +0 -0
  128. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/_tools/strings.py +0 -0
  129. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/__init__.py +0 -0
  130. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/approx_agg.py +0 -0
  131. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/array.py +0 -0
  132. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/datetime.py +0 -0
  133. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/geo.py +0 -0
  134. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/search.py +0 -0
  135. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/sql.py +0 -0
  136. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/bigquery/_operations/struct.py +0 -0
  137. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/clients.py +0 -0
  138. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/constants.py +0 -0
  139. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/__init__.py +0 -0
  140. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/bigframe_node.py +0 -0
  141. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/block_transforms.py +0 -0
  142. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/aggregate_compiler.py +0 -0
  143. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/compiled.py +0 -0
  144. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/compiler.py +0 -0
  145. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/concat.py +0 -0
  146. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/configs.py +0 -0
  147. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/constants.py +0 -0
  148. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/default_ordering.py +0 -0
  149. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/explode.py +0 -0
  150. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/googlesql/__init__.py +0 -0
  151. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/googlesql/abc.py +0 -0
  152. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/googlesql/datatype.py +0 -0
  153. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/googlesql/expression.py +0 -0
  154. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/googlesql/function.py +0 -0
  155. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/googlesql/query.py +0 -0
  156. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/ibis_types.py +0 -0
  157. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/polars/__init__.py +0 -0
  158. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/polars/compiler.py +0 -0
  159. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/schema_translator.py +0 -0
  160. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/sqlglot/__init__.py +0 -0
  161. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/compile/sqlglot/sqlglot_types.py +0 -0
  162. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/convert.py +0 -0
  163. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/eval.py +0 -0
  164. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/explode.py +0 -0
  165. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/expression.py +0 -0
  166. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/global_session.py +0 -0
  167. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/groupby/__init__.py +0 -0
  168. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/groupby/aggs.py +0 -0
  169. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/groupby/dataframe_group_by.py +0 -0
  170. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/groupby/series_group_by.py +0 -0
  171. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/identifiers.py +0 -0
  172. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/indexers.py +0 -0
  173. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/indexes/multi.py +0 -0
  174. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/join_def.py +0 -0
  175. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/log_adapter.py +0 -0
  176. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/nodes.py +0 -0
  177. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/ordering.py +0 -0
  178. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/pruning.py +0 -0
  179. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/reshape/__init__.py +0 -0
  180. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/reshape/api.py +0 -0
  181. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/reshape/concat.py +0 -0
  182. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/reshape/encoding.py +0 -0
  183. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/reshape/merge.py +0 -0
  184. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/reshape/tile.py +0 -0
  185. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/__init__.py +0 -0
  186. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/fold_row_count.py +0 -0
  187. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/implicit_align.py +0 -0
  188. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/legacy_align.py +0 -0
  189. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/order.py +0 -0
  190. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/pruning.py +0 -0
  191. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/scan_reduction.py +0 -0
  192. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/slices.py +0 -0
  193. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/timedeltas.py +0 -0
  194. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/rewrite/windows.py +0 -0
  195. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/scalar.py +0 -0
  196. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/schema.py +0 -0
  197. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/sequences.py +0 -0
  198. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/slices.py +0 -0
  199. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/tools/__init__.py +0 -0
  200. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/tree_properties.py +0 -0
  201. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/validations.py +0 -0
  202. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/window/__init__.py +0 -0
  203. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/window/ordering.py +0 -0
  204. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/window/rolling.py +0 -0
  205. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/core/window_spec.py +0 -0
  206. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/dtypes.py +0 -0
  207. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/enums.py +0 -0
  208. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/exceptions.py +0 -0
  209. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/features.py +0 -0
  210. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/formatting_helpers.py +0 -0
  211. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/functions/__init__.py +0 -0
  212. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/functions/_function_client.py +0 -0
  213. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/functions/_function_session.py +0 -0
  214. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/functions/_utils.py +0 -0
  215. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/functions/function.py +0 -0
  216. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/functions/function_template.py +0 -0
  217. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/geopandas/__init__.py +0 -0
  218. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/geopandas/geoseries.py +0 -0
  219. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/__init__.py +0 -0
  220. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/base.py +0 -0
  221. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/cluster.py +0 -0
  222. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/compose.py +0 -0
  223. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/core.py +0 -0
  224. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/decomposition.py +0 -0
  225. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/ensemble.py +0 -0
  226. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/globals.py +0 -0
  227. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/imported.py +0 -0
  228. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/impute.py +0 -0
  229. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/linear_model.py +0 -0
  230. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/metrics/__init__.py +0 -0
  231. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/metrics/pairwise.py +0 -0
  232. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/model_selection.py +0 -0
  233. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/pipeline.py +0 -0
  234. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/preprocessing.py +0 -0
  235. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/remote.py +0 -0
  236. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/sql.py +0 -0
  237. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/ml/utils.py +0 -0
  238. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/_matplotlib/__init__.py +0 -0
  239. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/_matplotlib/core.py +0 -0
  240. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/_matplotlib/hist.py +0 -0
  241. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/_op_converters.py +0 -0
  242. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/aggregations.py +0 -0
  243. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/ai.py +0 -0
  244. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/array_ops.py +0 -0
  245. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/base.py +0 -0
  246. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/base_ops.py +0 -0
  247. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/blob_ops.py +0 -0
  248. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/bool_ops.py +0 -0
  249. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/comparison_ops.py +0 -0
  250. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/distance_ops.py +0 -0
  251. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/frequency_ops.py +0 -0
  252. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/generic_ops.py +0 -0
  253. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/geo_ops.py +0 -0
  254. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/json_ops.py +0 -0
  255. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/lists.py +0 -0
  256. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/numpy_op_maps.py +0 -0
  257. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/plotting.py +0 -0
  258. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/remote_function_ops.py +0 -0
  259. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/semantics.py +0 -0
  260. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/struct_ops.py +0 -0
  261. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/structs.py +0 -0
  262. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/time_ops.py +0 -0
  263. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/timedelta_ops.py +0 -0
  264. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/operations/type.py +0 -0
  265. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/pandas/core/__init__.py +0 -0
  266. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/pandas/core/api.py +0 -0
  267. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/pandas/core/tools/__init__.py +0 -0
  268. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/pandas/core/tools/timedeltas.py +0 -0
  269. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/pandas/io/__init__.py +0 -0
  270. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/py.typed +0 -0
  271. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/_io/__init__.py +0 -0
  272. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/_io/pandas.py +0 -0
  273. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/anonymous_dataset.py +0 -0
  274. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/bigquery_session.py +0 -0
  275. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/clients.py +0 -0
  276. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/environment.py +0 -0
  277. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/metrics.py +0 -0
  278. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/planner.py +0 -0
  279. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/semi_executor.py +0 -0
  280. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/temporary_storage.py +0 -0
  281. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/time.py +0 -0
  282. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/session/validation.py +0 -0
  283. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/streaming/__init__.py +0 -0
  284. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/streaming/dataframe.py +0 -0
  285. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes/testing/__init__.py +0 -0
  286. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes.egg-info/dependency_links.txt +0 -0
  287. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes.egg-info/not-zip-safe +0 -0
  288. {bigframes-2.2.0 → bigframes-2.4.0}/bigframes.egg-info/top_level.txt +0 -0
  289. {bigframes-2.2.0 → bigframes-2.4.0}/pyproject.toml +0 -0
  290. {bigframes-2.2.0 → bigframes-2.4.0}/setup.cfg +0 -0
  291. {bigframes-2.2.0 → bigframes-2.4.0}/tests/__init__.py +0 -0
  292. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/README.md +0 -0
  293. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/__init__.py +0 -0
  294. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/config.jsonl +0 -0
  295. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q1.py +0 -0
  296. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q10.py +0 -0
  297. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q2.py +0 -0
  298. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q3.py +0 -0
  299. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q4.py +0 -0
  300. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q5.py +0 -0
  301. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q6.py +0 -0
  302. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q7.py +0 -0
  303. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/groupby/q8.py +0 -0
  304. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/join/config.jsonl +0 -0
  305. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/join/q1.py +0 -0
  306. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/join/q2.py +0 -0
  307. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/join/q3.py +0 -0
  308. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/join/q4.py +0 -0
  309. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/join/q5.py +0 -0
  310. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/sort/config.jsonl +0 -0
  311. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/db_benchmark/sort/q1.py +0 -0
  312. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/config.jsonl +0 -0
  313. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q1.py +0 -0
  314. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q10.py +0 -0
  315. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q11.py +0 -0
  316. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q12.py +0 -0
  317. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q13.py +0 -0
  318. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q14.py +0 -0
  319. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q15.py +0 -0
  320. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q16.py +0 -0
  321. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q17.py +0 -0
  322. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q18.py +0 -0
  323. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q19.py +0 -0
  324. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q2.py +0 -0
  325. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q20.py +0 -0
  326. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q21.py +0 -0
  327. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q22.py +0 -0
  328. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q3.py +0 -0
  329. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q4.py +0 -0
  330. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q5.py +0 -0
  331. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q6.py +0 -0
  332. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q7.py +0 -0
  333. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q8.py +0 -0
  334. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/tpch/q9.py +0 -0
  335. {bigframes-2.2.0 → bigframes-2.4.0}/tests/benchmark/utils.py +0 -0
  336. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/hockey_players.json +0 -0
  337. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/hockey_players.jsonl +0 -0
  338. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/json.jsonl +0 -0
  339. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/json_schema.json +0 -0
  340. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/matrix_2by3.json +0 -0
  341. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/matrix_2by3.jsonl +0 -0
  342. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/matrix_3by4.json +0 -0
  343. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/matrix_3by4.jsonl +0 -0
  344. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/nested.jsonl +0 -0
  345. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/nested_schema.json +0 -0
  346. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/nested_structs.jsonl +0 -0
  347. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/nested_structs_schema.json +0 -0
  348. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/penguins.jsonl +0 -0
  349. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/penguins_schema.json +0 -0
  350. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/people.csv +0 -0
  351. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/ratings.jsonl +0 -0
  352. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/ratings_schema.json +0 -0
  353. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/repeated.jsonl +0 -0
  354. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/repeated_schema.json +0 -0
  355. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/scalars.jsonl +0 -0
  356. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/scalars_schema.json +0 -0
  357. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/time_series.jsonl +0 -0
  358. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/time_series_schema.json +0 -0
  359. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/urban_areas.jsonl +0 -0
  360. {bigframes-2.2.0 → bigframes-2.4.0}/tests/data/urban_areas_schema.json +0 -0
  361. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/__init__.py +0 -0
  362. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/__init__.py +0 -0
  363. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/functions/__init__.py +0 -0
  364. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/functions/test_managed_function.py +0 -0
  365. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/functions/test_remote_function.py +0 -0
  366. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_cluster.py +0 -0
  367. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_compose.py +0 -0
  368. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_core.py +0 -0
  369. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_decomposition.py +0 -0
  370. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_ensemble.py +0 -0
  371. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_linear_model.py +0 -0
  372. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_model_selection.py +0 -0
  373. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/ml/test_pipeline.py +0 -0
  374. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/operations/__init__.py +0 -0
  375. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/operations/conftest.py +0 -0
  376. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/operations/test_ai.py +0 -0
  377. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/operations/test_semantics.py +0 -0
  378. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/test_dataframe.py +0 -0
  379. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/test_location.py +0 -0
  380. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/large/test_session.py +0 -0
  381. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/load/conftest.py +0 -0
  382. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/load/test_large_tables.py +0 -0
  383. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/__init__.py +0 -0
  384. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/__init__.py +0 -0
  385. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_approx_agg.py +0 -0
  386. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_geo.py +0 -0
  387. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_sql.py +0 -0
  388. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_struct.py +0 -0
  389. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/bigquery/test_vector_search.py +0 -0
  390. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/core/__init__.py +0 -0
  391. {bigframes-2.2.0/tests/system/small/functions → bigframes-2.4.0/tests/system/small/core/indexes}/__init__.py +0 -0
  392. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/core/test_convert.py +0 -0
  393. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/core/test_indexers.py +0 -0
  394. {bigframes-2.2.0/tests/unit/bigquery → bigframes-2.4.0/tests/system/small/functions}/__init__.py +0 -0
  395. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/functions/test_remote_function.py +0 -0
  396. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/geopandas/test_geoseries.py +0 -0
  397. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/__init__.py +0 -0
  398. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_cluster.py +0 -0
  399. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_core.py +0 -0
  400. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_decomposition.py +0 -0
  401. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_ensemble.py +0 -0
  402. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_forecasting.py +0 -0
  403. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_imported.py +0 -0
  404. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_impute.py +0 -0
  405. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_linear_model.py +0 -0
  406. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_metrics.py +0 -0
  407. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_metrics_pairwise.py +0 -0
  408. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_model_selection.py +0 -0
  409. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_preprocessing.py +0 -0
  410. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_register.py +0 -0
  411. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_remote.py +0 -0
  412. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/ml/test_utils.py +0 -0
  413. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/__init__.py +0 -0
  414. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_ai.py +0 -0
  415. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_dates.py +0 -0
  416. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_lists.py +0 -0
  417. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_plotting.py +0 -0
  418. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_semantics.py +0 -0
  419. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/operations/test_struct.py +0 -0
  420. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/regression/test_issue355_merge_after_filter.py +0 -0
  421. {bigframes-2.2.0/tests/unit/core/compile/sqlglot → bigframes-2.4.0/tests/system/small/session}/__init__.py +0 -0
  422. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_bq_sessions.py +0 -0
  423. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_encryption.py +0 -0
  424. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_groupby.py +0 -0
  425. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_index.py +0 -0
  426. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_ipython.py +0 -0
  427. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_multiindex.py +0 -0
  428. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_null_index.py +0 -0
  429. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_numpy.py +0 -0
  430. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_pandas.py +0 -0
  431. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_pandas_options.py +0 -0
  432. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_scalar.py +0 -0
  433. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_unordered.py +0 -0
  434. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/small/test_window.py +0 -0
  435. {bigframes-2.2.0 → bigframes-2.4.0}/tests/system/utils.py +0 -0
  436. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/__init__.py +0 -0
  437. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/_config/__init__.py +0 -0
  438. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/_config/test_bigquery_options.py +0 -0
  439. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/_config/test_threaded_options.py +0 -0
  440. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/_tools/__init__.py +0 -0
  441. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/_tools/test_strings.py +0 -0
  442. {bigframes-2.2.0/tests/unit/functions → bigframes-2.4.0/tests/unit/bigquery}/__init__.py +0 -0
  443. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/bigquery/test_json.py +0 -0
  444. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/__init__.py +0 -0
  445. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/__init__.py +0 -0
  446. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/googlesql/__init__.py +0 -0
  447. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/googlesql/test_expression.py +0 -0
  448. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/googlesql/test_function.py +0 -0
  449. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/googlesql/test_query.py +0 -0
  450. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/sqlglot/conftest.py +0 -0
  451. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_nested_structs_df/out.sql +0 -0
  452. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/sqlglot/test_compile_readlocal.py +0 -0
  453. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/compile/sqlglot/test_sqlglot_types.py +0 -0
  454. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_bf_utils.py +0 -0
  455. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_blocks.py +0 -0
  456. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_dtypes.py +0 -0
  457. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_expression.py +0 -0
  458. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_indexes.py +0 -0
  459. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_log_adapter.py +0 -0
  460. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_rewrite.py +0 -0
  461. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_slices.py +0 -0
  462. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_sql.py +0 -0
  463. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/core/test_windowspec.py +0 -0
  464. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/functions/test_function_template.py +0 -0
  465. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/functions/test_remote_function.py +0 -0
  466. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/functions/test_remote_function_utils.py +0 -0
  467. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/__init__.py +0 -0
  468. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/test_api_primitives.py +0 -0
  469. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/test_compose.py +0 -0
  470. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/test_forecasting.py +0 -0
  471. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/test_golden_sql.py +0 -0
  472. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/test_matrix_factorization.py +0 -0
  473. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/test_pipeline.py +0 -0
  474. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/ml/test_sql.py +0 -0
  475. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/operations/__init__.py +0 -0
  476. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/session/__init__.py +0 -0
  477. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/session/test_clients.py +0 -0
  478. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/session/test_io_pandas.py +0 -0
  479. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/session/test_read_gbq_table.py +0 -0
  480. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/session/test_session.py +0 -0
  481. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/session/test_time.py +0 -0
  482. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_clients.py +0 -0
  483. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_constants.py +0 -0
  484. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_daemon.py +0 -0
  485. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_dataframe.py +0 -0
  486. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_dataframe_io.py +0 -0
  487. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_features.py +0 -0
  488. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_formatting_helpers.py +0 -0
  489. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_local_engine.py +0 -0
  490. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_notebook.py +0 -0
  491. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_pandas.py +0 -0
  492. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_planner.py +0 -0
  493. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_sequences.py +0 -0
  494. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_series.py +0 -0
  495. {bigframes-2.2.0 → bigframes-2.4.0}/tests/unit/test_series_io.py +0 -0
  496. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/__init__.py +0 -0
  497. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/constants.py +0 -0
  498. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/cpython/LICENSE +0 -0
  499. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/cpython/__init__.py +0 -0
  500. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/cpython/_pprint.py +0 -0
  501. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/db_benchmark/LICENSE +0 -0
  502. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/db_benchmark/METADATA +0 -0
  503. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/db_benchmark/README.md +0 -0
  504. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/db_benchmark/__init__.py +0 -0
  505. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/db_benchmark/groupby_queries.py +0 -0
  506. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/db_benchmark/join_queries.py +0 -0
  507. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/db_benchmark/sort_queries.py +0 -0
  508. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/geopandas/LICENSE.txt +0 -0
  509. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/geopandas/geoseries.py +0 -0
  510. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/google_cloud_bigquery/LICENSE +0 -0
  511. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/google_cloud_bigquery/__init__.py +0 -0
  512. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/google_cloud_bigquery/_pandas_helpers.py +0 -0
  513. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/google_cloud_bigquery/tests/__init__.py +0 -0
  514. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/google_cloud_bigquery/tests/unit/__init__.py +0 -0
  515. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/google_cloud_bigquery/tests/unit/test_pandas_helpers.py +0 -0
  516. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/LICENSE.txt +0 -0
  517. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/README.md +0 -0
  518. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/__init__.py +0 -0
  519. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/__init__.py +0 -0
  520. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/__init__.py +0 -0
  521. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/backend.py +0 -0
  522. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/client.py +0 -0
  523. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/converter.py +0 -0
  524. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/datatypes.py +0 -0
  525. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/__init__.py +0 -0
  526. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/core.py +0 -0
  527. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/find.py +0 -0
  528. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/rewrite.py +0 -0
  529. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/sql/__init__.py +0 -0
  530. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/sql/compilers/__init__.py +0 -0
  531. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/sql/compilers/base.py +0 -0
  532. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/sql/compilers/bigquery/__init__.py +0 -0
  533. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/sql/datatypes.py +0 -0
  534. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/backends/sql/rewrites.py +0 -0
  535. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/__init__.py +0 -0
  536. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/annotations.py +0 -0
  537. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/bases.py +0 -0
  538. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/caching.py +0 -0
  539. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/collections.py +0 -0
  540. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/deferred.py +0 -0
  541. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/dispatch.py +0 -0
  542. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/egraph.py +0 -0
  543. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/exceptions.py +0 -0
  544. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/graph.py +0 -0
  545. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/grounds.py +0 -0
  546. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/numeric.py +0 -0
  547. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/patterns.py +0 -0
  548. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/selectors.py +0 -0
  549. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/temporal.py +0 -0
  550. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/common/typing.py +0 -0
  551. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/config.py +0 -0
  552. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/__init__.py +0 -0
  553. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/api.py +0 -0
  554. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/builders.py +0 -0
  555. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/datashape.py +0 -0
  556. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/datatypes/__init__.py +0 -0
  557. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/datatypes/cast.py +0 -0
  558. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/datatypes/core.py +0 -0
  559. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/datatypes/value.py +0 -0
  560. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/decompile.py +0 -0
  561. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/format.py +0 -0
  562. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/__init__.py +0 -0
  563. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/analytic.py +0 -0
  564. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/arrays.py +0 -0
  565. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/core.py +0 -0
  566. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/generic.py +0 -0
  567. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/geospatial.py +0 -0
  568. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/histograms.py +0 -0
  569. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/json.py +0 -0
  570. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/logical.py +0 -0
  571. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/maps.py +0 -0
  572. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/numeric.py +0 -0
  573. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/reductions.py +0 -0
  574. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/relations.py +0 -0
  575. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/sortkeys.py +0 -0
  576. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/strings.py +0 -0
  577. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/structs.py +0 -0
  578. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/subqueries.py +0 -0
  579. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/temporal.py +0 -0
  580. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/udf.py +0 -0
  581. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/operations/window.py +0 -0
  582. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/rewrites.py +0 -0
  583. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/rules.py +0 -0
  584. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/schema.py +0 -0
  585. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/sql.py +0 -0
  586. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/__init__.py +0 -0
  587. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/arrays.py +0 -0
  588. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/binary.py +0 -0
  589. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/core.py +0 -0
  590. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/dataframe_interchange.py +0 -0
  591. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/generic.py +0 -0
  592. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/geospatial.py +0 -0
  593. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/groupby.py +0 -0
  594. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/joins.py +0 -0
  595. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/json.py +0 -0
  596. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/logical.py +0 -0
  597. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/maps.py +0 -0
  598. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/numeric.py +0 -0
  599. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/pretty.py +0 -0
  600. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/relations.py +0 -0
  601. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/strings.py +0 -0
  602. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/structs.py +0 -0
  603. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/temporal.py +0 -0
  604. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/temporal_windows.py +0 -0
  605. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/typing.py +0 -0
  606. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/types/uuid.py +0 -0
  607. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/expr/visualize.py +0 -0
  608. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/formats/__init__.py +0 -0
  609. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/formats/numpy.py +0 -0
  610. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/formats/pandas.py +0 -0
  611. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/formats/polars.py +0 -0
  612. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/formats/pyarrow.py +0 -0
  613. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/selectors.py +0 -0
  614. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/ibis/util.py +0 -0
  615. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/AUTHORS.md +0 -0
  616. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/LICENSE +0 -0
  617. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/README.md +0 -0
  618. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/__init__.py +0 -0
  619. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/_config/config.py +0 -0
  620. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/arrays/__init__.py +0 -0
  621. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/arrays/arrow/__init__.py +0 -0
  622. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/arrays/arrow/accessors.py +0 -0
  623. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/arrays/datetimelike.py +0 -0
  624. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/common.py +0 -0
  625. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/align.py +0 -0
  626. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/common.py +0 -0
  627. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/engines.py +0 -0
  628. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/eval.py +0 -0
  629. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/expr.py +0 -0
  630. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/ops.py +0 -0
  631. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/parsing.py +0 -0
  632. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/computation/scope.py +0 -0
  633. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/dtypes/inference.py +0 -0
  634. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/generic.py +0 -0
  635. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/groupby/__init__.py +0 -0
  636. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/indexes/__init__.py +0 -0
  637. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/indexes/base.py +0 -0
  638. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/indexes/multi.py +0 -0
  639. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/indexing.py +0 -0
  640. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/reshape/__init__.py +0 -0
  641. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/reshape/concat.py +0 -0
  642. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/reshape/encoding.py +0 -0
  643. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/reshape/merge.py +0 -0
  644. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/reshape/tile.py +0 -0
  645. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/tools/__init__.py +0 -0
  646. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/tools/datetimes.py +0 -0
  647. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/tools/timedeltas.py +0 -0
  648. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/window/__init__.py +0 -0
  649. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/core/window/rolling.py +0 -0
  650. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/io/__init__.py +0 -0
  651. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/io/common.py +0 -0
  652. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/io/gbq.py +0 -0
  653. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/io/parquet.py +0 -0
  654. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/io/parsers/__init__.py +0 -0
  655. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/io/parsers/readers.py +0 -0
  656. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/io/pickle.py +0 -0
  657. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/pandas/_typing.py +0 -0
  658. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/plotting/_core.py +0 -0
  659. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/util/_exceptions.py +0 -0
  660. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/pandas/util/_validators.py +0 -0
  661. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/py.typed +0 -0
  662. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/COPYING +0 -0
  663. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/__init__.py +0 -0
  664. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/base.py +0 -0
  665. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/cluster/_kmeans.py +0 -0
  666. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/compose/_column_transformer.py +0 -0
  667. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/decomposition/_mf.py +0 -0
  668. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/decomposition/_pca.py +0 -0
  669. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/ensemble/__init__.py +0 -0
  670. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/ensemble/_forest.py +0 -0
  671. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/impute/_base.py +0 -0
  672. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/linear_model/_base.py +0 -0
  673. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/linear_model/_logistic.py +0 -0
  674. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/metrics/_classification.py +0 -0
  675. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/metrics/_ranking.py +0 -0
  676. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/metrics/_regression.py +0 -0
  677. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/metrics/pairwise.py +0 -0
  678. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/model_selection/_split.py +0 -0
  679. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/model_selection/_validation.py +0 -0
  680. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/pipeline.py +0 -0
  681. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/preprocessing/_data.py +0 -0
  682. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/preprocessing/_discretization.py +0 -0
  683. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/preprocessing/_encoder.py +0 -0
  684. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/preprocessing/_label.py +0 -0
  685. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/sklearn/preprocessing/_polynomial.py +0 -0
  686. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/LICENSE +0 -0
  687. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/METADATA +0 -0
  688. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/README.md +0 -0
  689. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/TPC-EULA.txt +0 -0
  690. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/__init__.py +0 -0
  691. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/__init__.py +0 -0
  692. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q1.py +0 -0
  693. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q10.py +0 -0
  694. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q12.py +0 -0
  695. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q13.py +0 -0
  696. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q14.py +0 -0
  697. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q15.py +0 -0
  698. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q16.py +0 -0
  699. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q17.py +0 -0
  700. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q18.py +0 -0
  701. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q19.py +0 -0
  702. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q2.py +0 -0
  703. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q20.py +0 -0
  704. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q21.py +0 -0
  705. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q22.py +0 -0
  706. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q3.py +0 -0
  707. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q4.py +0 -0
  708. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q5.py +0 -0
  709. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q6.py +0 -0
  710. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q7.py +0 -0
  711. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q8.py +0 -0
  712. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/queries/q9.py +0 -0
  713. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q1.sql +0 -0
  714. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q10.sql +0 -0
  715. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q11.sql +0 -0
  716. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q12.sql +0 -0
  717. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q13.sql +0 -0
  718. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q14.sql +0 -0
  719. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q15.sql +0 -0
  720. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q16.sql +0 -0
  721. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q17.sql +0 -0
  722. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q18.sql +0 -0
  723. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q19.sql +0 -0
  724. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q2.sql +0 -0
  725. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q20.sql +0 -0
  726. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q21.sql +0 -0
  727. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q22.sql +0 -0
  728. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q3.sql +0 -0
  729. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q4.sql +0 -0
  730. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q5.sql +0 -0
  731. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q6.sql +0 -0
  732. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q7.sql +0 -0
  733. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q8.sql +0 -0
  734. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/tpch/sql_queries/q9.sql +0 -0
  735. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/xgboost/LICENSE +0 -0
  736. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/xgboost/__init__.py +0 -0
  737. {bigframes-2.2.0 → bigframes-2.4.0}/third_party/bigframes_vendored/xgboost/sklearn.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bigframes
3
- Version: 2.2.0
3
+ Version: 2.4.0
4
4
  Summary: BigQuery DataFrames -- scalable analytics and machine learning with BigQuery
5
5
  Home-page: https://github.com/googleapis/python-bigquery-dataframes
6
6
  Author: Google LLC
@@ -27,8 +27,6 @@ Requires-Dist: fsspec>=2023.3.0
27
27
  Requires-Dist: gcsfs>=2023.3.0
28
28
  Requires-Dist: geopandas>=0.12.2
29
29
  Requires-Dist: google-auth<3.0,>=2.15.0
30
- Requires-Dist: google-cloud-bigtable>=2.24.0
31
- Requires-Dist: google-cloud-pubsub>=2.21.4
32
30
  Requires-Dist: google-cloud-bigquery[bqstorage,pandas]>=3.31.0
33
31
  Requires-Dist: google-cloud-bigquery-storage<3.0.0,>=2.30.0
34
32
  Requires-Dist: google-cloud-functions>=1.12.0
@@ -58,6 +56,8 @@ Requires-Dist: rich<14,>=12.4.4
58
56
  Provides-Extra: tests
59
57
  Requires-Dist: freezegun; extra == "tests"
60
58
  Requires-Dist: pytest-snapshot; extra == "tests"
59
+ Requires-Dist: google-cloud-bigtable>=2.24.0; extra == "tests"
60
+ Requires-Dist: google-cloud-pubsub>=2.21.4; extra == "tests"
61
61
  Provides-Extra: polars
62
62
  Requires-Dist: polars>=1.7.0; extra == "polars"
63
63
  Provides-Extra: scikit-learn
@@ -69,6 +69,8 @@ Requires-Dist: nox; extra == "dev"
69
69
  Requires-Dist: google-cloud-testutils; extra == "dev"
70
70
  Provides-Extra: all
71
71
  Requires-Dist: freezegun; extra == "all"
72
+ Requires-Dist: google-cloud-bigtable>=2.24.0; extra == "all"
73
+ Requires-Dist: google-cloud-pubsub>=2.21.4; extra == "all"
72
74
  Requires-Dist: google-cloud-testutils; extra == "all"
73
75
  Requires-Dist: nox; extra == "all"
74
76
  Requires-Dist: polars>=1.7.0; extra == "all"
@@ -150,6 +150,24 @@ class Options:
150
150
  """
151
151
  return self._local.bigquery_options is not None
152
152
 
153
+ @property
154
+ def _allow_large_results(self) -> bool:
155
+ """The effective 'allow_large_results' setting.
156
+
157
+ This value is `self.compute.allow_large_results` if set (not `None`),
158
+ otherwise it defaults to `self.bigquery.allow_large_results`.
159
+
160
+ Returns:
161
+ bool:
162
+ Whether large query results are permitted.
163
+ - `True`: The BigQuery result size limit (e.g., 10 GB) is removed.
164
+ - `False`: Results are restricted to this limit (potentially faster).
165
+ BigQuery will raise an error if this limit is exceeded.
166
+ """
167
+ if self.compute.allow_large_results is None:
168
+ return self.bigquery.allow_large_results
169
+ return self.compute.allow_large_results
170
+
153
171
 
154
172
  options = Options()
155
173
  """Global options for default session."""
@@ -19,10 +19,8 @@ from __future__ import annotations
19
19
  from typing import Literal, Optional
20
20
  import warnings
21
21
 
22
- import google.api_core.exceptions
23
22
  import google.auth.credentials
24
23
 
25
- import bigframes.constants
26
24
  import bigframes.enums
27
25
  import bigframes.exceptions as bfe
28
26
 
@@ -239,21 +237,34 @@ class BigQueryOptions:
239
237
  @property
240
238
  def allow_large_results(self) -> bool:
241
239
  """
242
- Sets the flag to allow or disallow query results larger than 10 GB.
240
+ DEPRECATED: Checks the legacy global setting for allowing large results.
241
+ Use ``bpd.options.compute.allow_large_results`` instead.
243
242
 
244
- The default setting for this flag is True, which allows queries to return results
245
- exceeding 10 GB by creating an explicit destination table. If set to False, it
246
- restricts the result size to 10 GB, and BigQuery will raise an error if this limit
247
- is exceeded.
243
+ Warning: Accessing ``bpd.options.bigquery.allow_large_results`` is deprecated
244
+ and this property will be removed in a future version. The configuration for
245
+ handling large results has moved.
248
246
 
249
247
  Returns:
250
- bool: True if large results are allowed with an explicit destination table,
251
- False if results are limited to 10 GB and errors are raised when exceeded.
248
+ bool: The value of the deprecated setting.
252
249
  """
253
250
  return self._allow_large_results
254
251
 
255
252
  @allow_large_results.setter
256
253
  def allow_large_results(self, value: bool):
254
+ warnings.warn(
255
+ "Setting `bpd.options.bigquery.allow_large_results` is deprecated, "
256
+ "and will be removed in the future. "
257
+ "Please use `bpd.options.compute.allow_large_results = <value>` instead. "
258
+ "The `bpd.options.bigquery.allow_large_results` option is ignored if "
259
+ "`bpd.options.compute.allow_large_results` is set.",
260
+ FutureWarning,
261
+ stacklevel=2,
262
+ )
263
+ if self._session_started and self._allow_large_results != value:
264
+ raise ValueError(
265
+ SESSION_STARTED_MESSAGE.format(attribute="allow_large_results")
266
+ )
267
+
257
268
  self._allow_large_results = value
258
269
 
259
270
  @property
@@ -86,6 +86,12 @@ class ComputeOptions:
86
86
  ai_ops_threshold_autofail (bool):
87
87
  Guards against unexpected processing of large amount of rows by semantic operators.
88
88
  When set to True, the operation automatically fails without asking for user inputs.
89
+
90
+ allow_large_results (bool):
91
+ Specifies whether query results can exceed 10 GB. Defaults to False. Setting this
92
+ to False (the default) restricts results to 10 GB for potentially faster execution;
93
+ BigQuery will raise an error if this limit is exceeded. Setting to True removes
94
+ this result size limit.
89
95
  """
90
96
 
91
97
  maximum_bytes_billed: Optional[int] = None
@@ -97,7 +103,9 @@ class ComputeOptions:
97
103
  semantic_ops_threshold_autofail = False
98
104
 
99
105
  ai_ops_confirmation_threshold: Optional[int] = 0
100
- ai_ops_threshold_autofail = False
106
+ ai_ops_threshold_autofail: bool = False
107
+
108
+ allow_large_results: Optional[bool] = None
101
109
 
102
110
  def assign_extra_query_labels(self, **kwargs: Any) -> None:
103
111
  """
@@ -35,6 +35,10 @@ class DisplayOptions:
35
35
  max_info_rows: Optional[int] = 200000
36
36
  memory_usage: bool = True
37
37
 
38
+ blob_display: bool = True
39
+ blob_display_width: Optional[int] = None
40
+ blob_display_height: Optional[int] = None
41
+
38
42
 
39
43
  @contextlib.contextmanager
40
44
  def pandas_repr(display_options: DisplayOptions):
@@ -15,6 +15,7 @@
15
15
  from typing import Optional
16
16
  import warnings
17
17
 
18
+ import bigframes
18
19
  import bigframes.exceptions as bfe
19
20
 
20
21
 
@@ -26,10 +27,6 @@ class ExperimentOptions:
26
27
  def __init__(self):
27
28
  self._semantic_operators: bool = False
28
29
  self._ai_operators: bool = False
29
- self._blob: bool = False
30
- self._blob_display: bool = True
31
- self._blob_display_width: Optional[int] = None
32
- self._blob_display_height: Optional[int] = None
33
30
 
34
31
  @property
35
32
  def semantic_operators(self) -> bool:
@@ -60,41 +57,72 @@ class ExperimentOptions:
60
57
 
61
58
  @property
62
59
  def blob(self) -> bool:
63
- return self._blob
60
+ msg = bfe.format_message(
61
+ "BigFrames Blob is in preview now. This flag is no longer needed."
62
+ )
63
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
64
+ return True
64
65
 
65
66
  @blob.setter
66
67
  def blob(self, value: bool):
67
- if value is True:
68
- msg = bfe.format_message(
69
- "BigFrames Blob is still under experiments. It may not work and "
70
- "subject to change in the future."
71
- )
72
- warnings.warn(msg, category=bfe.PreviewWarning)
73
- self._blob = value
68
+ msg = bfe.format_message(
69
+ "BigFrames Blob is in preview now. This flag is no longer needed."
70
+ )
71
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
74
72
 
75
73
  @property
76
74
  def blob_display(self) -> bool:
77
75
  """Whether to display the blob content in notebook DataFrame preview. Default True."""
78
- return self._blob_display
76
+ msg = bfe.format_message(
77
+ "BigFrames Blob is in preview now. The option has been moved to bigframes.options.display.blob_display."
78
+ )
79
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
80
+
81
+ return bigframes.options.display.blob_display
79
82
 
80
83
  @blob_display.setter
81
84
  def blob_display(self, value: bool):
82
- self._blob_display = value
85
+ msg = bfe.format_message(
86
+ "BigFrames Blob is in preview now. The option has been moved to bigframes.options.display.blob_display."
87
+ )
88
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
89
+
90
+ bigframes.options.display.blob_display = value
83
91
 
84
92
  @property
85
93
  def blob_display_width(self) -> Optional[int]:
86
94
  """Width in pixels that the blob constrained to."""
87
- return self._blob_display_width
95
+ msg = bfe.format_message(
96
+ "BigFrames Blob is in preview now. The option has been moved to bigframes.options.display.blob_display_width."
97
+ )
98
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
99
+
100
+ return bigframes.options.display.blob_display_width
88
101
 
89
102
  @blob_display_width.setter
90
103
  def blob_display_width(self, value: Optional[int]):
91
- self._blob_display_width = value
104
+ msg = bfe.format_message(
105
+ "BigFrames Blob is in preview now. The option has been moved to bigframes.options.display.blob_display_width."
106
+ )
107
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
108
+
109
+ bigframes.options.display.blob_display_width = value
92
110
 
93
111
  @property
94
112
  def blob_display_height(self) -> Optional[int]:
95
113
  """Height in pixels that the blob constrained to."""
96
- return self._blob_display_height
114
+ msg = bfe.format_message(
115
+ "BigFrames Blob is in preview now. The option has been moved to bigframes.options.display.blob_display_height."
116
+ )
117
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
118
+
119
+ return bigframes.options.display.blob_display_height
97
120
 
98
121
  @blob_display_height.setter
99
122
  def blob_display_height(self, value: Optional[int]):
100
- self._blob_display_height = value
123
+ msg = bfe.format_message(
124
+ "BigFrames Blob is in preview now. The option has been moved to bigframes.options.display.blob_display_height."
125
+ )
126
+ warnings.warn(msg, category=bfe.ApiDeprecationWarning)
127
+
128
+ bigframes.options.display.blob_display_height = value
@@ -38,6 +38,7 @@ from bigframes.bigquery._operations.json import (
38
38
  json_extract_array,
39
39
  json_extract_string_array,
40
40
  json_set,
41
+ json_value,
41
42
  parse_json,
42
43
  )
43
44
  from bigframes.bigquery._operations.search import create_vector_index, vector_search
@@ -61,6 +62,7 @@ __all__ = [
61
62
  "json_extract",
62
63
  "json_extract_array",
63
64
  "json_extract_string_array",
65
+ "json_value",
64
66
  "parse_json",
65
67
  # search ops
66
68
  "create_vector_index",
@@ -231,6 +231,40 @@ def json_extract_string_array(
231
231
  return array_series
232
232
 
233
233
 
234
+ def json_value(
235
+ input: series.Series,
236
+ json_path: str,
237
+ ) -> series.Series:
238
+ """Extracts a JSON scalar value and converts it to a SQL ``STRING`` value. In
239
+ addtion, this function:
240
+ - Removes the outermost quotes and unescapes the values.
241
+ - Returns a SQL ``NULL`` if a non-scalar value is selected.
242
+ - Uses double quotes to escape invalid ``JSON_PATH`` characters in JSON keys.
243
+
244
+ **Examples:**
245
+
246
+ >>> import bigframes.pandas as bpd
247
+ >>> import bigframes.bigquery as bbq
248
+ >>> bpd.options.display.progress_bar = None
249
+
250
+ >>> s = bpd.Series(['{"name": "Jakob", "age": "6"}', '{"name": "Jakob", "age": []}'])
251
+ >>> bbq.json_value(s, json_path="$.age")
252
+ 0 6
253
+ 1 <NA>
254
+ dtype: string
255
+
256
+ Args:
257
+ input (bigframes.series.Series):
258
+ The Series containing JSON data (as native JSON objects or JSON-formatted strings).
259
+ json_path (str):
260
+ The JSON path identifying the data that you want to obtain from the input.
261
+
262
+ Returns:
263
+ bigframes.series.Series: A new Series with the JSON-formatted STRING.
264
+ """
265
+ return input._apply_unary_op(ops.JSONValue(json_path=json_path))
266
+
267
+
234
268
  @utils.preview(name="The JSON-related API `parse_json`")
235
269
  def parse_json(
236
270
  input: series.Series,
@@ -108,6 +108,38 @@ AS r\"\"\"
108
108
  return self._session.read_gbq_function(udf_name)
109
109
 
110
110
 
111
+ def exif_func(src_obj_ref_rt: str) -> str:
112
+ import io
113
+ import json
114
+
115
+ from PIL import ExifTags, Image
116
+ import requests
117
+ from requests import adapters
118
+
119
+ session = requests.Session()
120
+ session.mount("https://", adapters.HTTPAdapter(max_retries=3))
121
+
122
+ src_obj_ref_rt_json = json.loads(src_obj_ref_rt)
123
+
124
+ src_url = src_obj_ref_rt_json["access_urls"]["read_url"]
125
+
126
+ response = session.get(src_url, timeout=30)
127
+ bts = response.content
128
+
129
+ image = Image.open(io.BytesIO(bts))
130
+ exif_data = image.getexif()
131
+ exif_dict = {}
132
+ if exif_data:
133
+ for tag, value in exif_data.items():
134
+ tag_name = ExifTags.TAGS.get(tag, tag)
135
+ exif_dict[tag_name] = value
136
+
137
+ return json.dumps(exif_dict)
138
+
139
+
140
+ exif_func_def = FunctionDef(exif_func, ["pillow", "requests"])
141
+
142
+
111
143
  # Blur images. Takes ObjectRefRuntime as JSON string. Outputs ObjectRefRuntime JSON string.
112
144
  def image_blur_func(
113
145
  src_obj_ref_rt: str, dst_obj_ref_rt: str, ksize_x: int, ksize_y: int, ext: str
@@ -172,33 +172,6 @@ class ArrayValue:
172
172
  def supports_fast_peek(self) -> bool:
173
173
  return bigframes.core.tree_properties.can_fast_peek(self.node)
174
174
 
175
- def as_cached(
176
- self: ArrayValue,
177
- cache_table: google.cloud.bigquery.Table,
178
- ordering: Optional[orderings.RowOrdering],
179
- ) -> ArrayValue:
180
- """
181
- Replace the node with an equivalent one that references a table where the value has been materialized to.
182
- """
183
- table = nodes.GbqTable.from_table(cache_table)
184
- source = nodes.BigqueryDataSource(
185
- table, ordering=ordering, n_rows=cache_table.num_rows
186
- )
187
- # Assumption: GBQ cached table uses field name as bq column name
188
- scan_list = nodes.ScanList(
189
- tuple(
190
- nodes.ScanItem(field.id, field.dtype, field.id.name)
191
- for field in self.node.fields
192
- )
193
- )
194
- node = nodes.CachedTableNode(
195
- original_node=self.node,
196
- source=source,
197
- table_session=self.session,
198
- scan_list=scan_list,
199
- )
200
- return ArrayValue(node)
201
-
202
175
  def get_column_type(self, key: str) -> bigframes.dtypes.Dtype:
203
176
  return self.schema.get_type(key)
204
177
 
@@ -22,7 +22,6 @@ circular dependencies.
22
22
  from __future__ import annotations
23
23
 
24
24
  import ast
25
- import copy
26
25
  import dataclasses
27
26
  import datetime
28
27
  import functools
@@ -30,17 +29,7 @@ import itertools
30
29
  import random
31
30
  import textwrap
32
31
  import typing
33
- from typing import (
34
- Any,
35
- Iterable,
36
- List,
37
- Literal,
38
- Mapping,
39
- Optional,
40
- Sequence,
41
- Tuple,
42
- Union,
43
- )
32
+ from typing import Iterable, List, Literal, Mapping, Optional, Sequence, Tuple, Union
44
33
  import warnings
45
34
 
46
35
  import bigframes_vendored.constants as constants
@@ -69,6 +58,8 @@ import bigframes.dtypes
69
58
  import bigframes.exceptions as bfe
70
59
  import bigframes.operations as ops
71
60
  import bigframes.operations.aggregations as agg_ops
61
+ from bigframes.session import dry_runs
62
+ from bigframes.session import executor as executors
72
63
 
73
64
  # Type constraint for wherever column labels are used
74
65
  Label = typing.Hashable
@@ -595,10 +586,10 @@ class Block:
595
586
  self.expr,
596
587
  ordered=True,
597
588
  use_explicit_destination=allow_large_results,
598
- page_size=page_size,
599
- max_results=max_results,
600
589
  )
601
- for df in execute_result.to_pandas_batches():
590
+ for df in execute_result.to_pandas_batches(
591
+ page_size=page_size, max_results=max_results
592
+ ):
602
593
  self._copy_index_to_pandas(df)
603
594
  if squeeze:
604
595
  yield df.squeeze(axis=1)
@@ -821,59 +812,18 @@ class Block:
821
812
  if sampling.enable_downsampling:
822
813
  raise NotImplementedError("Dry run with sampling is not supported")
823
814
 
824
- index: List[Any] = []
825
- values: List[Any] = []
826
-
827
- index.append("columnCount")
828
- values.append(len(self.value_columns))
829
- index.append("columnDtypes")
830
- values.append(
831
- {
832
- col: self.expr.get_column_type(self.resolve_label_exact_or_error(col))
833
- for col in self.column_labels
834
- }
835
- )
836
-
837
- index.append("indexLevel")
838
- values.append(self.index.nlevels)
839
- index.append("indexDtypes")
840
- values.append(self.index.dtypes)
841
-
842
815
  expr = self._apply_value_keys_to_expr(value_keys=value_keys)
843
816
  query_job = self.session._executor.dry_run(expr, ordered)
844
- job_api_repr = copy.deepcopy(query_job._properties)
845
-
846
- job_ref = job_api_repr["jobReference"]
847
- for key, val in job_ref.items():
848
- index.append(key)
849
- values.append(val)
850
-
851
- index.append("jobType")
852
- values.append(job_api_repr["configuration"]["jobType"])
853
-
854
- query_config = job_api_repr["configuration"]["query"]
855
- for key in ("destinationTable", "useLegacySql"):
856
- index.append(key)
857
- values.append(query_config.get(key))
858
-
859
- query_stats = job_api_repr["statistics"]["query"]
860
- for key in (
861
- "referencedTables",
862
- "totalBytesProcessed",
863
- "cacheHit",
864
- "statementType",
865
- ):
866
- index.append(key)
867
- values.append(query_stats.get(key))
868
817
 
869
- index.append("creationTime")
870
- values.append(
871
- pd.Timestamp(
872
- job_api_repr["statistics"]["creationTime"], unit="ms", tz="UTC"
873
- )
874
- )
818
+ column_dtypes = {
819
+ col: self.expr.get_column_type(self.resolve_label_exact_or_error(col))
820
+ for col in self.column_labels
821
+ }
875
822
 
876
- return pd.Series(values, index=index), query_job
823
+ dry_run_stats = dry_runs.get_query_stats_with_dtypes(
824
+ query_job, column_dtypes, self.index.dtypes
825
+ )
826
+ return dry_run_stats, query_job
877
827
 
878
828
  def _apply_value_keys_to_expr(self, value_keys: Optional[Iterable[str]] = None):
879
829
  expr = self._expr
@@ -1560,12 +1510,19 @@ class Block:
1560
1510
  """
1561
1511
 
1562
1512
  # head caches full underlying expression, so row_count will be free after
1563
- head_result = self.session._executor.head(self.expr, max_results)
1513
+ executor = self.session._executor
1514
+ executor.cached(
1515
+ array_value=self.expr,
1516
+ config=executors.CacheConfig(optimize_for="head", if_cached="reuse-strict"),
1517
+ )
1518
+ head_result = self.session._executor.execute(
1519
+ self.expr.slice(start=None, stop=max_results, step=None)
1520
+ )
1564
1521
  row_count = self.session._executor.execute(self.expr.row_count()).to_py_scalar()
1565
1522
 
1566
- df = head_result.to_pandas()
1567
- self._copy_index_to_pandas(df)
1568
- return df, row_count, head_result.query_job
1523
+ head_df = head_result.to_pandas()
1524
+ self._copy_index_to_pandas(head_df)
1525
+ return head_df, row_count, head_result.query_job
1569
1526
 
1570
1527
  def promote_offsets(self, label: Label = None) -> typing.Tuple[Block, str]:
1571
1528
  expr, result_id = self._expr.promote_offsets()
@@ -2535,9 +2492,12 @@ class Block:
2535
2492
  # use a heuristic for whether something needs to be cached
2536
2493
  self.session._executor.cached(
2537
2494
  self.expr,
2538
- force=force,
2539
- use_session=session_aware,
2540
- cluster_cols=self.index_columns,
2495
+ config=executors.CacheConfig(
2496
+ optimize_for="auto"
2497
+ if session_aware
2498
+ else executors.HierarchicalKey(tuple(self.index_columns)),
2499
+ if_cached="replace" if force else "reuse-any",
2500
+ ),
2541
2501
  )
2542
2502
 
2543
2503
  def _is_monotonic(
@@ -13,9 +13,13 @@
13
13
  # limitations under the License.
14
14
  from __future__ import annotations
15
15
 
16
- from bigframes.core.compile.api import SQLCompiler, test_only_ibis_inferred_schema
16
+ from bigframes.core.compile.api import test_only_ibis_inferred_schema
17
+ from bigframes.core.compile.compiler import compile_sql
18
+ from bigframes.core.compile.configs import CompileRequest, CompileResult
17
19
 
18
20
  __all__ = [
19
- "SQLCompiler",
20
21
  "test_only_ibis_inferred_schema",
22
+ "compile_sql",
23
+ "CompileRequest",
24
+ "CompileResult",
21
25
  ]
@@ -13,43 +13,13 @@
13
13
  # limitations under the License.
14
14
  from __future__ import annotations
15
15
 
16
- from typing import Optional, Sequence, Tuple, TYPE_CHECKING
17
-
18
- import google.cloud.bigquery as bigquery
16
+ from typing import TYPE_CHECKING
19
17
 
20
18
  from bigframes.core import rewrite
21
- from bigframes.core.compile import compiler, configs
19
+ from bigframes.core.compile import compiler
22
20
 
23
21
  if TYPE_CHECKING:
24
22
  import bigframes.core.nodes
25
- import bigframes.core.ordering
26
-
27
-
28
- class SQLCompiler:
29
- def compile(
30
- self,
31
- node: bigframes.core.nodes.BigFrameNode,
32
- *,
33
- ordered: bool = True,
34
- limit: Optional[int] = None,
35
- ) -> str:
36
- """Compile node into sql where rows are sorted with ORDER BY."""
37
- request = configs.CompileRequest(node, sort_rows=ordered, peek_count=limit)
38
- return compiler.compile_sql(request).sql
39
-
40
- def compile_raw(
41
- self,
42
- node: bigframes.core.nodes.BigFrameNode,
43
- ) -> Tuple[
44
- str, Sequence[bigquery.SchemaField], bigframes.core.ordering.RowOrdering
45
- ]:
46
- """Compile node into sql that exposes all columns, including hidden ordering-only columns."""
47
- request = configs.CompileRequest(
48
- node, sort_rows=False, materialize_all_order_keys=True
49
- )
50
- result = compiler.compile_sql(request)
51
- assert result.row_order is not None
52
- return result.sql, result.sql_schema, result.row_order
53
23
 
54
24
 
55
25
  def test_only_ibis_inferred_schema(node: bigframes.core.nodes.BigFrameNode):