bigframes 2.1.0__tar.gz → 2.2.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 (714) hide show
  1. {bigframes-2.1.0/bigframes.egg-info → bigframes-2.2.0}/PKG-INFO +7 -4
  2. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_config/experiment_options.py +31 -0
  3. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/geo.py +10 -4
  4. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/array_value.py +11 -1
  5. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/bigframe_node.py +2 -3
  6. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/blocks.py +9 -19
  7. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/api.py +3 -3
  8. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/compiled.py +1 -7
  9. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/compiler.py +6 -29
  10. bigframes-2.2.0/bigframes/core/compile/configs.py +36 -0
  11. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/googlesql/expression.py +1 -1
  12. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/polars/compiler.py +0 -5
  13. bigframes-2.2.0/bigframes/core/compile/sqlglot/__init__.py +18 -0
  14. bigframes-2.2.0/bigframes/core/compile/sqlglot/compiler.py +168 -0
  15. bigframes-2.2.0/bigframes/core/compile/sqlglot/scalar_compiler.py +33 -0
  16. bigframes-2.2.0/bigframes/core/compile/sqlglot/sqlglot_ir.py +147 -0
  17. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/sqlglot/sqlglot_types.py +1 -1
  18. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/local_data.py +142 -48
  19. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/nodes.py +61 -83
  20. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/__init__.py +7 -1
  21. bigframes-2.2.0/bigframes/core/rewrite/fold_row_count.py +44 -0
  22. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/order.py +0 -5
  23. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/pruning.py +20 -4
  24. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/scan_reduction.py +17 -2
  25. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/schema.py +5 -2
  26. bigframes-2.2.0/bigframes/core/sequences.py +105 -0
  27. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/sql.py +7 -1
  28. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/utils.py +7 -2
  29. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/dataframe.py +37 -8
  30. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/dtypes.py +15 -2
  31. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/functions/_function_session.py +18 -6
  32. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/base.py +8 -14
  33. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/core.py +29 -2
  34. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/globals.py +1 -1
  35. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/imported.py +19 -16
  36. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/llm.py +50 -69
  37. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/remote.py +8 -13
  38. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/sql.py +26 -14
  39. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/utils.py +24 -1
  40. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/blob.py +5 -2
  41. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/__init__.py +33 -26
  42. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/_io/bigquery/__init__.py +2 -3
  43. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/_io/bigquery/read_gbq_table.py +14 -0
  44. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/bq_caching_executor.py +27 -48
  45. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/clients.py +31 -0
  46. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/executor.py +33 -7
  47. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/loader.py +108 -27
  48. bigframes-2.2.0/bigframes/session/local_scan_executor.py +66 -0
  49. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/metrics.py +26 -25
  50. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/read_api_execution.py +9 -1
  51. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/version.py +2 -2
  52. {bigframes-2.1.0 → bigframes-2.2.0/bigframes.egg-info}/PKG-INFO +7 -4
  53. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes.egg-info/SOURCES.txt +17 -0
  54. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes.egg-info/requires.txt +6 -3
  55. {bigframes-2.1.0 → bigframes-2.2.0}/setup.py +5 -4
  56. bigframes-2.2.0/tests/data/scalars.jsonl +9 -0
  57. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/test_session.py +0 -37
  58. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_geo.py +19 -0
  59. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_json.py +1 -1
  60. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_llm.py +190 -116
  61. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_multimodal_llm.py +1 -0
  62. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_dataframe.py +27 -1
  63. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_dataframe_io.py +83 -0
  64. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_session.py +131 -65
  65. bigframes-2.2.0/tests/unit/core/compile/sqlglot/compiler_session.py +76 -0
  66. bigframes-2.2.0/tests/unit/core/compile/sqlglot/conftest.py +112 -0
  67. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal/out.sql +171 -0
  68. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_json_df/out.sql +4 -0
  69. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_lists_df/out.sql +41 -0
  70. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_nested_structs_df/out.sql +19 -0
  71. bigframes-2.2.0/tests/unit/core/compile/sqlglot/snapshots/test_compile_readlocal/test_compile_readlocal_w_structs_df/out.sql +21 -0
  72. bigframes-2.2.0/tests/unit/core/compile/sqlglot/test_compile_readlocal.py +55 -0
  73. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_bf_utils.py +1 -1
  74. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_blocks.py +0 -2
  75. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_dtypes.py +4 -4
  76. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_sql.py +61 -0
  77. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/session/test_session.py +18 -6
  78. bigframes-2.2.0/tests/unit/test_local_data.py +46 -0
  79. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_local_engine.py +1 -1
  80. bigframes-2.2.0/tests/unit/test_sequences.py +55 -0
  81. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/constants.py +5 -1
  82. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/sql/compilers/bigquery/__init__.py +0 -1
  83. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/io/parsers/readers.py +1 -1
  84. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/version.py +2 -2
  85. bigframes-2.1.0/tests/data/scalars.jsonl +0 -9
  86. bigframes-2.1.0/tests/unit/functions/__init__.py +0 -13
  87. {bigframes-2.1.0 → bigframes-2.2.0}/LICENSE +0 -0
  88. {bigframes-2.1.0 → bigframes-2.2.0}/MANIFEST.in +0 -0
  89. {bigframes-2.1.0 → bigframes-2.2.0}/README.rst +0 -0
  90. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/__init__.py +0 -0
  91. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_config/__init__.py +0 -0
  92. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_config/bigquery_options.py +0 -0
  93. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_config/compute_options.py +0 -0
  94. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_config/display_options.py +0 -0
  95. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_config/sampling_options.py +0 -0
  96. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_tools/__init__.py +0 -0
  97. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/_tools/strings.py +0 -0
  98. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/__init__.py +0 -0
  99. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/__init__.py +0 -0
  100. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/approx_agg.py +0 -0
  101. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/array.py +0 -0
  102. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/datetime.py +0 -0
  103. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/json.py +0 -0
  104. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/search.py +0 -0
  105. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/sql.py +0 -0
  106. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/bigquery/_operations/struct.py +0 -0
  107. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/blob/_functions.py +0 -0
  108. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/clients.py +0 -0
  109. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/constants.py +0 -0
  110. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/__init__.py +0 -0
  111. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/block_transforms.py +0 -0
  112. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/__init__.py +0 -0
  113. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/aggregate_compiler.py +0 -0
  114. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/concat.py +0 -0
  115. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/constants.py +0 -0
  116. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/default_ordering.py +0 -0
  117. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/explode.py +0 -0
  118. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/googlesql/__init__.py +0 -0
  119. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/googlesql/abc.py +0 -0
  120. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/googlesql/datatype.py +0 -0
  121. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/googlesql/function.py +0 -0
  122. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/googlesql/query.py +0 -0
  123. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/ibis_types.py +0 -0
  124. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/polars/__init__.py +0 -0
  125. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/scalar_op_compiler.py +0 -0
  126. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/compile/schema_translator.py +0 -0
  127. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/convert.py +0 -0
  128. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/eval.py +0 -0
  129. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/explode.py +0 -0
  130. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/expression.py +0 -0
  131. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/global_session.py +0 -0
  132. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/groupby/__init__.py +0 -0
  133. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/groupby/aggs.py +0 -0
  134. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/groupby/dataframe_group_by.py +0 -0
  135. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/groupby/series_group_by.py +0 -0
  136. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/guid.py +0 -0
  137. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/identifiers.py +0 -0
  138. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/indexers.py +0 -0
  139. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/indexes/__init__.py +0 -0
  140. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/indexes/base.py +0 -0
  141. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/indexes/multi.py +0 -0
  142. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/join_def.py +0 -0
  143. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/log_adapter.py +0 -0
  144. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/ordering.py +0 -0
  145. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/pruning.py +0 -0
  146. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/reshape/__init__.py +0 -0
  147. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/reshape/api.py +0 -0
  148. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/reshape/concat.py +0 -0
  149. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/reshape/encoding.py +0 -0
  150. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/reshape/merge.py +0 -0
  151. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/reshape/tile.py +0 -0
  152. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/identifiers.py +0 -0
  153. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/implicit_align.py +0 -0
  154. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/legacy_align.py +0 -0
  155. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/slices.py +0 -0
  156. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/timedeltas.py +0 -0
  157. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/rewrite/windows.py +0 -0
  158. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/scalar.py +0 -0
  159. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/slices.py +0 -0
  160. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/tools/__init__.py +0 -0
  161. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/tools/datetimes.py +0 -0
  162. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/tree_properties.py +0 -0
  163. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/validations.py +0 -0
  164. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/window/__init__.py +0 -0
  165. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/window/ordering.py +0 -0
  166. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/window/rolling.py +0 -0
  167. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/core/window_spec.py +0 -0
  168. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/enums.py +0 -0
  169. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/exceptions.py +0 -0
  170. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/features.py +0 -0
  171. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/formatting_helpers.py +0 -0
  172. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/functions/__init__.py +0 -0
  173. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/functions/_function_client.py +0 -0
  174. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/functions/_utils.py +0 -0
  175. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/functions/function.py +0 -0
  176. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/functions/function_template.py +0 -0
  177. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/geopandas/__init__.py +0 -0
  178. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/geopandas/geoseries.py +0 -0
  179. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/__init__.py +0 -0
  180. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/cluster.py +0 -0
  181. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/compose.py +0 -0
  182. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/decomposition.py +0 -0
  183. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/ensemble.py +0 -0
  184. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/forecasting.py +0 -0
  185. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/impute.py +0 -0
  186. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/linear_model.py +0 -0
  187. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/loader.py +0 -0
  188. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/metrics/__init__.py +0 -0
  189. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/metrics/_metrics.py +0 -0
  190. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/metrics/pairwise.py +0 -0
  191. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/model_selection.py +0 -0
  192. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/pipeline.py +0 -0
  193. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/ml/preprocessing.py +0 -0
  194. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/__init__.py +0 -0
  195. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/_matplotlib/__init__.py +0 -0
  196. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/_matplotlib/core.py +0 -0
  197. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/_matplotlib/hist.py +0 -0
  198. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/_op_converters.py +0 -0
  199. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/aggregations.py +0 -0
  200. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/ai.py +0 -0
  201. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/array_ops.py +0 -0
  202. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/base.py +0 -0
  203. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/base_ops.py +0 -0
  204. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/blob_ops.py +0 -0
  205. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/bool_ops.py +0 -0
  206. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/comparison_ops.py +0 -0
  207. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/date_ops.py +0 -0
  208. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/datetime_ops.py +0 -0
  209. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/datetimes.py +0 -0
  210. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/distance_ops.py +0 -0
  211. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/frequency_ops.py +0 -0
  212. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/generic_ops.py +0 -0
  213. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/geo_ops.py +0 -0
  214. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/json_ops.py +0 -0
  215. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/lists.py +0 -0
  216. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/numeric_ops.py +0 -0
  217. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/numpy_op_maps.py +0 -0
  218. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/plotting.py +0 -0
  219. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/remote_function_ops.py +0 -0
  220. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/semantics.py +0 -0
  221. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/string_ops.py +0 -0
  222. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/strings.py +0 -0
  223. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/struct_ops.py +0 -0
  224. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/structs.py +0 -0
  225. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/time_ops.py +0 -0
  226. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/timedelta_ops.py +0 -0
  227. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/operations/type.py +0 -0
  228. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/pandas/__init__.py +0 -0
  229. {bigframes-2.1.0/bigframes/core/compile/sqlglot → bigframes-2.2.0/bigframes/pandas/core}/__init__.py +0 -0
  230. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/pandas/core/api.py +0 -0
  231. {bigframes-2.1.0/bigframes/pandas/core → bigframes-2.2.0/bigframes/pandas/core/tools}/__init__.py +0 -0
  232. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/pandas/core/tools/timedeltas.py +0 -0
  233. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/pandas/io/__init__.py +0 -0
  234. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/pandas/io/api.py +0 -0
  235. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/py.typed +0 -0
  236. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/series.py +0 -0
  237. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/_io/__init__.py +0 -0
  238. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/_io/pandas.py +0 -0
  239. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/anonymous_dataset.py +0 -0
  240. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/bigquery_session.py +0 -0
  241. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/environment.py +0 -0
  242. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/planner.py +0 -0
  243. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/semi_executor.py +0 -0
  244. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/temporary_storage.py +0 -0
  245. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/time.py +0 -0
  246. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/session/validation.py +0 -0
  247. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/streaming/__init__.py +0 -0
  248. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/streaming/dataframe.py +0 -0
  249. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/testing/__init__.py +0 -0
  250. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes/testing/mocks.py +0 -0
  251. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes.egg-info/dependency_links.txt +0 -0
  252. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes.egg-info/not-zip-safe +0 -0
  253. {bigframes-2.1.0 → bigframes-2.2.0}/bigframes.egg-info/top_level.txt +0 -0
  254. {bigframes-2.1.0 → bigframes-2.2.0}/pyproject.toml +0 -0
  255. {bigframes-2.1.0 → bigframes-2.2.0}/setup.cfg +0 -0
  256. {bigframes-2.1.0 → bigframes-2.2.0}/tests/__init__.py +0 -0
  257. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/README.md +0 -0
  258. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/__init__.py +0 -0
  259. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/config.jsonl +0 -0
  260. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q1.py +0 -0
  261. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q10.py +0 -0
  262. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q2.py +0 -0
  263. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q3.py +0 -0
  264. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q4.py +0 -0
  265. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q5.py +0 -0
  266. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q6.py +0 -0
  267. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q7.py +0 -0
  268. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/groupby/q8.py +0 -0
  269. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/join/config.jsonl +0 -0
  270. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/join/q1.py +0 -0
  271. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/join/q2.py +0 -0
  272. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/join/q3.py +0 -0
  273. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/join/q4.py +0 -0
  274. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/join/q5.py +0 -0
  275. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/sort/config.jsonl +0 -0
  276. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/db_benchmark/sort/q1.py +0 -0
  277. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/config.jsonl +0 -0
  278. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q1.py +0 -0
  279. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q10.py +0 -0
  280. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q11.py +0 -0
  281. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q12.py +0 -0
  282. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q13.py +0 -0
  283. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q14.py +0 -0
  284. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q15.py +0 -0
  285. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q16.py +0 -0
  286. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q17.py +0 -0
  287. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q18.py +0 -0
  288. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q19.py +0 -0
  289. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q2.py +0 -0
  290. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q20.py +0 -0
  291. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q21.py +0 -0
  292. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q22.py +0 -0
  293. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q3.py +0 -0
  294. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q4.py +0 -0
  295. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q5.py +0 -0
  296. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q6.py +0 -0
  297. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q7.py +0 -0
  298. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q8.py +0 -0
  299. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/tpch/q9.py +0 -0
  300. {bigframes-2.1.0 → bigframes-2.2.0}/tests/benchmark/utils.py +0 -0
  301. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/hockey_players.json +0 -0
  302. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/hockey_players.jsonl +0 -0
  303. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/json.jsonl +0 -0
  304. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/json_schema.json +0 -0
  305. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/matrix_2by3.json +0 -0
  306. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/matrix_2by3.jsonl +0 -0
  307. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/matrix_3by4.json +0 -0
  308. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/matrix_3by4.jsonl +0 -0
  309. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/nested.jsonl +0 -0
  310. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/nested_schema.json +0 -0
  311. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/nested_structs.jsonl +0 -0
  312. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/nested_structs_schema.json +0 -0
  313. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/penguins.jsonl +0 -0
  314. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/penguins_schema.json +0 -0
  315. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/people.csv +0 -0
  316. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/ratings.jsonl +0 -0
  317. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/ratings_schema.json +0 -0
  318. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/repeated.jsonl +0 -0
  319. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/repeated_schema.json +0 -0
  320. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/scalars_schema.json +0 -0
  321. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/time_series.jsonl +0 -0
  322. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/time_series_schema.json +0 -0
  323. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/urban_areas.jsonl +0 -0
  324. {bigframes-2.1.0 → bigframes-2.2.0}/tests/data/urban_areas_schema.json +0 -0
  325. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/__init__.py +0 -0
  326. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/conftest.py +0 -0
  327. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/__init__.py +0 -0
  328. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/blob/test_function.py +0 -0
  329. {bigframes-2.1.0/bigframes/pandas/core/tools → bigframes-2.2.0/tests/system/large/functions}/__init__.py +0 -0
  330. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/functions/test_managed_function.py +0 -0
  331. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/functions/test_remote_function.py +0 -0
  332. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_cluster.py +0 -0
  333. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_compose.py +0 -0
  334. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_core.py +0 -0
  335. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_decomposition.py +0 -0
  336. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_ensemble.py +0 -0
  337. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_forecasting.py +0 -0
  338. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_linear_model.py +0 -0
  339. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_model_selection.py +0 -0
  340. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/ml/test_pipeline.py +0 -0
  341. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/operations/__init__.py +0 -0
  342. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/operations/conftest.py +0 -0
  343. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/operations/test_ai.py +0 -0
  344. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/operations/test_semantics.py +0 -0
  345. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/test_dataframe.py +0 -0
  346. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/test_dataframe_io.py +0 -0
  347. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/test_location.py +0 -0
  348. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/large/test_streaming.py +0 -0
  349. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/load/conftest.py +0 -0
  350. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/load/test_large_tables.py +0 -0
  351. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/load/test_llm.py +0 -0
  352. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/__init__.py +0 -0
  353. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/__init__.py +0 -0
  354. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_approx_agg.py +0 -0
  355. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_array.py +0 -0
  356. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_datetime.py +0 -0
  357. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_sql.py +0 -0
  358. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_struct.py +0 -0
  359. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/bigquery/test_vector_search.py +0 -0
  360. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/blob/test_io.py +0 -0
  361. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/blob/test_properties.py +0 -0
  362. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/blob/test_urls.py +0 -0
  363. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/core/__init__.py +0 -0
  364. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/core/test_convert.py +0 -0
  365. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/core/test_indexers.py +0 -0
  366. {bigframes-2.1.0/tests/system/large → bigframes-2.2.0/tests/system/small}/functions/__init__.py +0 -0
  367. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/functions/test_remote_function.py +0 -0
  368. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/geopandas/test_geoseries.py +0 -0
  369. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/__init__.py +0 -0
  370. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/conftest.py +0 -0
  371. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_cluster.py +0 -0
  372. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_core.py +0 -0
  373. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_decomposition.py +0 -0
  374. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_ensemble.py +0 -0
  375. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_forecasting.py +0 -0
  376. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_imported.py +0 -0
  377. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_impute.py +0 -0
  378. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_linear_model.py +0 -0
  379. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_metrics.py +0 -0
  380. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_metrics_pairwise.py +0 -0
  381. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_model_selection.py +0 -0
  382. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_preprocessing.py +0 -0
  383. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_register.py +0 -0
  384. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_remote.py +0 -0
  385. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/ml/test_utils.py +0 -0
  386. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/__init__.py +0 -0
  387. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_ai.py +0 -0
  388. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_dates.py +0 -0
  389. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_datetimes.py +0 -0
  390. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_lists.py +0 -0
  391. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_plotting.py +0 -0
  392. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_semantics.py +0 -0
  393. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_strings.py +0 -0
  394. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_struct.py +0 -0
  395. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/operations/test_timedeltas.py +0 -0
  396. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/regression/test_issue355_merge_after_filter.py +0 -0
  397. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_bq_sessions.py +0 -0
  398. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_encryption.py +0 -0
  399. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_groupby.py +0 -0
  400. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_index.py +0 -0
  401. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_index_io.py +0 -0
  402. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_ipython.py +0 -0
  403. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_multiindex.py +0 -0
  404. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_null_index.py +0 -0
  405. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_numpy.py +0 -0
  406. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_pandas.py +0 -0
  407. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_pandas_options.py +0 -0
  408. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_progress_bar.py +0 -0
  409. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_scalar.py +0 -0
  410. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_series.py +0 -0
  411. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_series_io.py +0 -0
  412. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_unordered.py +0 -0
  413. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/small/test_window.py +0 -0
  414. {bigframes-2.1.0 → bigframes-2.2.0}/tests/system/utils.py +0 -0
  415. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/__init__.py +0 -0
  416. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/_config/__init__.py +0 -0
  417. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/_config/test_bigquery_options.py +0 -0
  418. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/_config/test_experiment_options.py +0 -0
  419. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/_config/test_threaded_options.py +0 -0
  420. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/_tools/__init__.py +0 -0
  421. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/_tools/test_strings.py +0 -0
  422. {bigframes-2.1.0/tests/system/small/functions → bigframes-2.2.0/tests/unit/bigquery}/__init__.py +0 -0
  423. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/bigquery/test_json.py +0 -0
  424. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/__init__.py +0 -0
  425. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/compile/__init__.py +0 -0
  426. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/compile/googlesql/__init__.py +0 -0
  427. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/compile/googlesql/test_expression.py +0 -0
  428. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/compile/googlesql/test_function.py +0 -0
  429. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/compile/googlesql/test_query.py +0 -0
  430. {bigframes-2.1.0/tests/unit/bigquery → bigframes-2.2.0/tests/unit/core/compile/sqlglot}/__init__.py +0 -0
  431. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/compile/sqlglot/test_sqlglot_types.py +0 -0
  432. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_expression.py +0 -0
  433. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_indexes.py +0 -0
  434. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_log_adapter.py +0 -0
  435. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_rewrite.py +0 -0
  436. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_slices.py +0 -0
  437. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/core/test_windowspec.py +0 -0
  438. {bigframes-2.1.0/tests/unit/core/compile/sqlglot → bigframes-2.2.0/tests/unit/functions}/__init__.py +0 -0
  439. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/functions/test_function_template.py +0 -0
  440. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/functions/test_remote_function.py +0 -0
  441. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/functions/test_remote_function_utils.py +0 -0
  442. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/__init__.py +0 -0
  443. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/test_api_primitives.py +0 -0
  444. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/test_compose.py +0 -0
  445. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/test_forecasting.py +0 -0
  446. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/test_golden_sql.py +0 -0
  447. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/test_matrix_factorization.py +0 -0
  448. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/test_pipeline.py +0 -0
  449. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/ml/test_sql.py +0 -0
  450. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/operations/__init__.py +0 -0
  451. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/polars_session.py +0 -0
  452. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/session/__init__.py +0 -0
  453. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/session/test_clients.py +0 -0
  454. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/session/test_io_bigquery.py +0 -0
  455. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/session/test_io_pandas.py +0 -0
  456. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/session/test_read_gbq_table.py +0 -0
  457. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/session/test_time.py +0 -0
  458. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_clients.py +0 -0
  459. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_constants.py +0 -0
  460. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_daemon.py +0 -0
  461. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_dataframe.py +0 -0
  462. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_dataframe_io.py +0 -0
  463. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_features.py +0 -0
  464. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_formatting_helpers.py +0 -0
  465. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_notebook.py +0 -0
  466. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_pandas.py +0 -0
  467. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_planner.py +0 -0
  468. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_series.py +0 -0
  469. {bigframes-2.1.0 → bigframes-2.2.0}/tests/unit/test_series_io.py +0 -0
  470. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/__init__.py +0 -0
  471. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/cpython/LICENSE +0 -0
  472. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/cpython/__init__.py +0 -0
  473. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/cpython/_pprint.py +0 -0
  474. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/db_benchmark/LICENSE +0 -0
  475. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/db_benchmark/METADATA +0 -0
  476. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/db_benchmark/README.md +0 -0
  477. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/db_benchmark/__init__.py +0 -0
  478. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/db_benchmark/groupby_queries.py +0 -0
  479. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/db_benchmark/join_queries.py +0 -0
  480. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/db_benchmark/sort_queries.py +0 -0
  481. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/geopandas/LICENSE.txt +0 -0
  482. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/geopandas/geoseries.py +0 -0
  483. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/google_cloud_bigquery/LICENSE +0 -0
  484. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/google_cloud_bigquery/__init__.py +0 -0
  485. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/google_cloud_bigquery/_pandas_helpers.py +0 -0
  486. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/google_cloud_bigquery/tests/__init__.py +0 -0
  487. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/google_cloud_bigquery/tests/unit/__init__.py +0 -0
  488. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/google_cloud_bigquery/tests/unit/test_pandas_helpers.py +0 -0
  489. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/LICENSE.txt +0 -0
  490. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/README.md +0 -0
  491. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/__init__.py +0 -0
  492. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/__init__.py +0 -0
  493. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/__init__.py +0 -0
  494. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/backend.py +0 -0
  495. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/client.py +0 -0
  496. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/converter.py +0 -0
  497. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/datatypes.py +0 -0
  498. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/__init__.py +0 -0
  499. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/core.py +0 -0
  500. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/find.py +0 -0
  501. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/bigquery/udf/rewrite.py +0 -0
  502. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/sql/__init__.py +0 -0
  503. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/sql/compilers/__init__.py +0 -0
  504. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/sql/compilers/base.py +0 -0
  505. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/sql/datatypes.py +0 -0
  506. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/backends/sql/rewrites.py +0 -0
  507. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/__init__.py +0 -0
  508. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/annotations.py +0 -0
  509. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/bases.py +0 -0
  510. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/caching.py +0 -0
  511. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/collections.py +0 -0
  512. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/deferred.py +0 -0
  513. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/dispatch.py +0 -0
  514. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/egraph.py +0 -0
  515. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/exceptions.py +0 -0
  516. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/graph.py +0 -0
  517. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/grounds.py +0 -0
  518. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/numeric.py +0 -0
  519. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/patterns.py +0 -0
  520. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/selectors.py +0 -0
  521. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/temporal.py +0 -0
  522. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/common/typing.py +0 -0
  523. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/config.py +0 -0
  524. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/__init__.py +0 -0
  525. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/api.py +0 -0
  526. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/builders.py +0 -0
  527. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/datashape.py +0 -0
  528. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/datatypes/__init__.py +0 -0
  529. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/datatypes/cast.py +0 -0
  530. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/datatypes/core.py +0 -0
  531. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/datatypes/value.py +0 -0
  532. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/decompile.py +0 -0
  533. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/format.py +0 -0
  534. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/__init__.py +0 -0
  535. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/analytic.py +0 -0
  536. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/arrays.py +0 -0
  537. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/core.py +0 -0
  538. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/generic.py +0 -0
  539. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/geospatial.py +0 -0
  540. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/histograms.py +0 -0
  541. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/json.py +0 -0
  542. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/logical.py +0 -0
  543. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/maps.py +0 -0
  544. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/numeric.py +0 -0
  545. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/reductions.py +0 -0
  546. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/relations.py +0 -0
  547. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/sortkeys.py +0 -0
  548. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/strings.py +0 -0
  549. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/structs.py +0 -0
  550. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/subqueries.py +0 -0
  551. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/temporal.py +0 -0
  552. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/udf.py +0 -0
  553. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/operations/window.py +0 -0
  554. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/rewrites.py +0 -0
  555. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/rules.py +0 -0
  556. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/schema.py +0 -0
  557. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/sql.py +0 -0
  558. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/__init__.py +0 -0
  559. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/arrays.py +0 -0
  560. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/binary.py +0 -0
  561. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/core.py +0 -0
  562. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/dataframe_interchange.py +0 -0
  563. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/generic.py +0 -0
  564. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/geospatial.py +0 -0
  565. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/groupby.py +0 -0
  566. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/joins.py +0 -0
  567. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/json.py +0 -0
  568. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/logical.py +0 -0
  569. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/maps.py +0 -0
  570. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/numeric.py +0 -0
  571. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/pretty.py +0 -0
  572. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/relations.py +0 -0
  573. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/strings.py +0 -0
  574. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/structs.py +0 -0
  575. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/temporal.py +0 -0
  576. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/temporal_windows.py +0 -0
  577. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/typing.py +0 -0
  578. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/types/uuid.py +0 -0
  579. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/expr/visualize.py +0 -0
  580. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/formats/__init__.py +0 -0
  581. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/formats/numpy.py +0 -0
  582. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/formats/pandas.py +0 -0
  583. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/formats/polars.py +0 -0
  584. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/formats/pyarrow.py +0 -0
  585. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/selectors.py +0 -0
  586. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/ibis/util.py +0 -0
  587. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/AUTHORS.md +0 -0
  588. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/LICENSE +0 -0
  589. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/README.md +0 -0
  590. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/__init__.py +0 -0
  591. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/_config/config.py +0 -0
  592. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/arrays/__init__.py +0 -0
  593. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/arrays/arrow/__init__.py +0 -0
  594. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/arrays/arrow/accessors.py +0 -0
  595. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/arrays/datetimelike.py +0 -0
  596. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/common.py +0 -0
  597. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/align.py +0 -0
  598. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/common.py +0 -0
  599. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/engines.py +0 -0
  600. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/eval.py +0 -0
  601. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/expr.py +0 -0
  602. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/ops.py +0 -0
  603. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/parsing.py +0 -0
  604. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/computation/scope.py +0 -0
  605. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/config_init.py +0 -0
  606. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/dtypes/inference.py +0 -0
  607. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/frame.py +0 -0
  608. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/generic.py +0 -0
  609. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/groupby/__init__.py +0 -0
  610. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/indexes/__init__.py +0 -0
  611. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/indexes/accessor.py +0 -0
  612. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/indexes/base.py +0 -0
  613. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/indexes/multi.py +0 -0
  614. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/indexing.py +0 -0
  615. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/reshape/__init__.py +0 -0
  616. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/reshape/concat.py +0 -0
  617. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/reshape/encoding.py +0 -0
  618. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/reshape/merge.py +0 -0
  619. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/reshape/tile.py +0 -0
  620. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/series.py +0 -0
  621. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/strings/accessor.py +0 -0
  622. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/tools/__init__.py +0 -0
  623. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/tools/datetimes.py +0 -0
  624. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/tools/timedeltas.py +0 -0
  625. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/window/__init__.py +0 -0
  626. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/core/window/rolling.py +0 -0
  627. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/io/__init__.py +0 -0
  628. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/io/common.py +0 -0
  629. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/io/gbq.py +0 -0
  630. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/io/parquet.py +0 -0
  631. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/io/parsers/__init__.py +0 -0
  632. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/io/pickle.py +0 -0
  633. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/pandas/_typing.py +0 -0
  634. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/plotting/_core.py +0 -0
  635. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/util/_exceptions.py +0 -0
  636. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/pandas/util/_validators.py +0 -0
  637. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/py.typed +0 -0
  638. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/COPYING +0 -0
  639. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/__init__.py +0 -0
  640. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/base.py +0 -0
  641. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/cluster/_kmeans.py +0 -0
  642. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/compose/_column_transformer.py +0 -0
  643. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/decomposition/_mf.py +0 -0
  644. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/decomposition/_pca.py +0 -0
  645. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/ensemble/__init__.py +0 -0
  646. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/ensemble/_forest.py +0 -0
  647. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/impute/_base.py +0 -0
  648. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/linear_model/_base.py +0 -0
  649. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/linear_model/_logistic.py +0 -0
  650. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/metrics/_classification.py +0 -0
  651. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/metrics/_ranking.py +0 -0
  652. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/metrics/_regression.py +0 -0
  653. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/metrics/pairwise.py +0 -0
  654. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/model_selection/_split.py +0 -0
  655. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/model_selection/_validation.py +0 -0
  656. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/pipeline.py +0 -0
  657. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/preprocessing/_data.py +0 -0
  658. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/preprocessing/_discretization.py +0 -0
  659. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/preprocessing/_encoder.py +0 -0
  660. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/preprocessing/_label.py +0 -0
  661. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/sklearn/preprocessing/_polynomial.py +0 -0
  662. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/LICENSE +0 -0
  663. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/METADATA +0 -0
  664. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/README.md +0 -0
  665. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/TPC-EULA.txt +0 -0
  666. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/__init__.py +0 -0
  667. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/__init__.py +0 -0
  668. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q1.py +0 -0
  669. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q10.py +0 -0
  670. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q11.py +0 -0
  671. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q12.py +0 -0
  672. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q13.py +0 -0
  673. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q14.py +0 -0
  674. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q15.py +0 -0
  675. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q16.py +0 -0
  676. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q17.py +0 -0
  677. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q18.py +0 -0
  678. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q19.py +0 -0
  679. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q2.py +0 -0
  680. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q20.py +0 -0
  681. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q21.py +0 -0
  682. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q22.py +0 -0
  683. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q3.py +0 -0
  684. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q4.py +0 -0
  685. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q5.py +0 -0
  686. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q6.py +0 -0
  687. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q7.py +0 -0
  688. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q8.py +0 -0
  689. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/queries/q9.py +0 -0
  690. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q1.sql +0 -0
  691. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q10.sql +0 -0
  692. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q11.sql +0 -0
  693. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q12.sql +0 -0
  694. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q13.sql +0 -0
  695. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q14.sql +0 -0
  696. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q15.sql +0 -0
  697. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q16.sql +0 -0
  698. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q17.sql +0 -0
  699. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q18.sql +0 -0
  700. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q19.sql +0 -0
  701. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q2.sql +0 -0
  702. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q20.sql +0 -0
  703. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q21.sql +0 -0
  704. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q22.sql +0 -0
  705. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q3.sql +0 -0
  706. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q4.sql +0 -0
  707. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q5.sql +0 -0
  708. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q6.sql +0 -0
  709. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q7.sql +0 -0
  710. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q8.sql +0 -0
  711. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/tpch/sql_queries/q9.sql +0 -0
  712. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/xgboost/LICENSE +0 -0
  713. {bigframes-2.1.0 → bigframes-2.2.0}/third_party/bigframes_vendored/xgboost/__init__.py +0 -0
  714. {bigframes-2.1.0 → bigframes-2.2.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.1.0
3
+ Version: 2.2.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
@@ -26,10 +26,11 @@ Requires-Dist: cloudpickle>=2.0.0
26
26
  Requires-Dist: fsspec>=2023.3.0
27
27
  Requires-Dist: gcsfs>=2023.3.0
28
28
  Requires-Dist: geopandas>=0.12.2
29
- Requires-Dist: google-auth<3.0dev,>=2.15.0
29
+ Requires-Dist: google-auth<3.0,>=2.15.0
30
30
  Requires-Dist: google-cloud-bigtable>=2.24.0
31
31
  Requires-Dist: google-cloud-pubsub>=2.21.4
32
32
  Requires-Dist: google-cloud-bigquery[bqstorage,pandas]>=3.31.0
33
+ Requires-Dist: google-cloud-bigquery-storage<3.0.0,>=2.30.0
33
34
  Requires-Dist: google-cloud-functions>=1.12.0
34
35
  Requires-Dist: google-cloud-bigquery-connection>=1.12.0
35
36
  Requires-Dist: google-cloud-iam>=2.12.1
@@ -41,7 +42,7 @@ Requires-Dist: pandas-gbq>=0.26.1
41
42
  Requires-Dist: pyarrow>=15.0.2
42
43
  Requires-Dist: pydata-google-auth>=1.8.2
43
44
  Requires-Dist: requests>=2.27.1
44
- Requires-Dist: shapely>=2.0.0
45
+ Requires-Dist: shapely>=1.8.5
45
46
  Requires-Dist: sqlglot>=23.6.3
46
47
  Requires-Dist: tabulate>=0.9
47
48
  Requires-Dist: ipywidgets>=7.7.1
@@ -55,6 +56,8 @@ Requires-Dist: toolz<2,>=0.11
55
56
  Requires-Dist: typing-extensions<5,>=4.5.0
56
57
  Requires-Dist: rich<14,>=12.4.4
57
58
  Provides-Extra: tests
59
+ Requires-Dist: freezegun; extra == "tests"
60
+ Requires-Dist: pytest-snapshot; extra == "tests"
58
61
  Provides-Extra: polars
59
62
  Requires-Dist: polars>=1.7.0; extra == "polars"
60
63
  Provides-Extra: scikit-learn
@@ -64,7 +67,6 @@ Requires-Dist: pytest; extra == "dev"
64
67
  Requires-Dist: pre-commit; extra == "dev"
65
68
  Requires-Dist: nox; extra == "dev"
66
69
  Requires-Dist: google-cloud-testutils; extra == "dev"
67
- Requires-Dist: freezegun; extra == "dev"
68
70
  Provides-Extra: all
69
71
  Requires-Dist: freezegun; extra == "all"
70
72
  Requires-Dist: google-cloud-testutils; extra == "all"
@@ -72,6 +74,7 @@ Requires-Dist: nox; extra == "all"
72
74
  Requires-Dist: polars>=1.7.0; extra == "all"
73
75
  Requires-Dist: pre-commit; extra == "all"
74
76
  Requires-Dist: pytest; extra == "all"
77
+ Requires-Dist: pytest-snapshot; extra == "all"
75
78
  Requires-Dist: scikit-learn>=1.2.2; extra == "all"
76
79
 
77
80
  BigQuery DataFrames
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from typing import Optional
15
16
  import warnings
16
17
 
17
18
  import bigframes.exceptions as bfe
@@ -26,6 +27,9 @@ class ExperimentOptions:
26
27
  self._semantic_operators: bool = False
27
28
  self._ai_operators: bool = False
28
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
29
33
 
30
34
  @property
31
35
  def semantic_operators(self) -> bool:
@@ -67,3 +71,30 @@ class ExperimentOptions:
67
71
  )
68
72
  warnings.warn(msg, category=bfe.PreviewWarning)
69
73
  self._blob = value
74
+
75
+ @property
76
+ def blob_display(self) -> bool:
77
+ """Whether to display the blob content in notebook DataFrame preview. Default True."""
78
+ return self._blob_display
79
+
80
+ @blob_display.setter
81
+ def blob_display(self, value: bool):
82
+ self._blob_display = value
83
+
84
+ @property
85
+ def blob_display_width(self) -> Optional[int]:
86
+ """Width in pixels that the blob constrained to."""
87
+ return self._blob_display_width
88
+
89
+ @blob_display_width.setter
90
+ def blob_display_width(self, value: Optional[int]):
91
+ self._blob_display_width = value
92
+
93
+ @property
94
+ def blob_display_height(self) -> Optional[int]:
95
+ """Height in pixels that the blob constrained to."""
96
+ return self._blob_display_height
97
+
98
+ @blob_display_height.setter
99
+ def blob_display_height(self, value: Optional[int]):
100
+ self._blob_display_height = value
@@ -106,7 +106,9 @@ def st_area(
106
106
  def st_difference(
107
107
  series: Union[bigframes.series.Series, bigframes.geopandas.GeoSeries],
108
108
  other: Union[
109
- bigframes.series.Series, bigframes.geopandas.GeoSeries, shapely.Geometry
109
+ bigframes.series.Series,
110
+ bigframes.geopandas.GeoSeries,
111
+ shapely.geometry.base.BaseGeometry,
110
112
  ],
111
113
  ) -> bigframes.series.Series:
112
114
  """
@@ -207,7 +209,9 @@ def st_difference(
207
209
  def st_distance(
208
210
  series: Union[bigframes.series.Series, bigframes.geopandas.GeoSeries],
209
211
  other: Union[
210
- bigframes.series.Series, bigframes.geopandas.GeoSeries, shapely.Geometry
212
+ bigframes.series.Series,
213
+ bigframes.geopandas.GeoSeries,
214
+ shapely.geometry.base.BaseGeometry,
211
215
  ],
212
216
  *,
213
217
  use_spheroid: bool = False,
@@ -260,7 +264,7 @@ def st_distance(
260
264
  A series containing geography objects.
261
265
  other (bigframes.pandas.Series | bigframes.geopandas.GeoSeries | shapely.Geometry):
262
266
  The series or geometric object to calculate the distance in meters
263
- to from the geography objects in ``series``.
267
+ to form the geography objects in ``series``.
264
268
  use_spheroid (optional, default ``False``):
265
269
  Determines how this function measures distance. If ``use_spheroid``
266
270
  is False, the function measures distance on the surface of a perfect
@@ -282,7 +286,9 @@ def st_distance(
282
286
  def st_intersection(
283
287
  series: Union[bigframes.series.Series, bigframes.geopandas.GeoSeries],
284
288
  other: Union[
285
- bigframes.series.Series, bigframes.geopandas.GeoSeries, shapely.Geometry
289
+ bigframes.series.Series,
290
+ bigframes.geopandas.GeoSeries,
291
+ shapely.geometry.base.BaseGeometry,
286
292
  ],
287
293
  ) -> bigframes.series.Series:
288
294
  """
@@ -204,7 +204,17 @@ class ArrayValue:
204
204
 
205
205
  def row_count(self) -> ArrayValue:
206
206
  """Get number of rows in ArrayValue as a single-entry ArrayValue."""
207
- return ArrayValue(nodes.RowCountNode(child=self.node))
207
+ return ArrayValue(
208
+ nodes.AggregateNode(
209
+ child=self.node,
210
+ aggregations=(
211
+ (
212
+ ex.NullaryAggregation(agg_ops.size_op),
213
+ ids.ColumnId(bigframes.core.guid.generate_guid()),
214
+ ),
215
+ ),
216
+ )
217
+ )
208
218
 
209
219
  # Operations
210
220
  def filter_by_id(self, predicate_id: str, keep_null: bool = False) -> ArrayValue:
@@ -20,10 +20,9 @@ import dataclasses
20
20
  import functools
21
21
  import itertools
22
22
  import typing
23
- from typing import Callable, Dict, Generator, Iterable, Mapping, Set, Tuple
23
+ from typing import Callable, Dict, Generator, Iterable, Mapping, Sequence, Set, Tuple
24
24
 
25
25
  from bigframes.core import identifiers
26
- import bigframes.core.guid
27
26
  import bigframes.core.schema as schemata
28
27
  import bigframes.dtypes
29
28
 
@@ -163,7 +162,7 @@ class BigFrameNode:
163
162
  # TODO: Store some local data lazily for select, aggregate nodes.
164
163
  @property
165
164
  @abc.abstractmethod
166
- def fields(self) -> Iterable[Field]:
165
+ def fields(self) -> Sequence[Field]:
167
166
  ...
168
167
 
169
168
  @property
@@ -39,7 +39,6 @@ from typing import (
39
39
  Optional,
40
40
  Sequence,
41
41
  Tuple,
42
- TYPE_CHECKING,
43
42
  Union,
44
43
  )
45
44
  import warnings
@@ -68,13 +67,8 @@ import bigframes.core.utils as utils
68
67
  import bigframes.core.window_spec as windows
69
68
  import bigframes.dtypes
70
69
  import bigframes.exceptions as bfe
71
- import bigframes.features
72
70
  import bigframes.operations as ops
73
71
  import bigframes.operations.aggregations as agg_ops
74
- import bigframes.session._io.pandas as io_pandas
75
-
76
- if TYPE_CHECKING:
77
- import bigframes.session.executor
78
72
 
79
73
  # Type constraint for wherever column labels are used
80
74
  Label = typing.Hashable
@@ -221,7 +215,7 @@ class Block:
221
215
  except Exception:
222
216
  pass
223
217
 
224
- row_count = self.session._executor.get_row_count(self.expr)
218
+ row_count = self.session._executor.execute(self.expr.row_count()).to_py_scalar()
225
219
  return (row_count, len(self.value_columns))
226
220
 
227
221
  @property
@@ -485,7 +479,7 @@ class Block:
485
479
  *,
486
480
  ordered: bool = True,
487
481
  allow_large_results: Optional[bool] = None,
488
- ) -> Tuple[pa.Table, bigquery.QueryJob]:
482
+ ) -> Tuple[pa.Table, Optional[bigquery.QueryJob]]:
489
483
  """Run query and download results as a pyarrow Table."""
490
484
  execute_result = self.session._executor.execute(
491
485
  self.expr, ordered=ordered, use_explicit_destination=allow_large_results
@@ -580,7 +574,7 @@ class Block:
580
574
  result = self.session._executor.peek(
581
575
  self.expr, n, use_explicit_destination=allow_large_results
582
576
  )
583
- df = io_pandas.arrow_to_pandas(result.to_arrow_table(), self.expr.schema)
577
+ df = result.to_pandas()
584
578
  self._copy_index_to_pandas(df)
585
579
  return df
586
580
  else:
@@ -604,8 +598,7 @@ class Block:
604
598
  page_size=page_size,
605
599
  max_results=max_results,
606
600
  )
607
- for record_batch in execute_result.arrow_batches():
608
- df = io_pandas.arrow_to_pandas(record_batch, self.expr.schema)
601
+ for df in execute_result.to_pandas_batches():
609
602
  self._copy_index_to_pandas(df)
610
603
  if squeeze:
611
604
  yield df.squeeze(axis=1)
@@ -659,7 +652,7 @@ class Block:
659
652
 
660
653
  # TODO: Maybe materialize before downsampling
661
654
  # Some downsampling methods
662
- if fraction < 1:
655
+ if fraction < 1 and (execute_result.total_rows is not None):
663
656
  if not sample_config.enable_downsampling:
664
657
  raise RuntimeError(
665
658
  f"The data size ({table_mb:.2f} MB) exceeds the maximum download limit of "
@@ -690,9 +683,7 @@ class Block:
690
683
  MaterializationOptions(ordered=materialize_options.ordered)
691
684
  )
692
685
  else:
693
- total_rows = execute_result.total_rows
694
- arrow = execute_result.to_arrow_table()
695
- df = io_pandas.arrow_to_pandas(arrow, schema=self.expr.schema)
686
+ df = execute_result.to_pandas()
696
687
  self._copy_index_to_pandas(df)
697
688
 
698
689
  return df, execute_result.query_job
@@ -1570,12 +1561,11 @@ class Block:
1570
1561
 
1571
1562
  # head caches full underlying expression, so row_count will be free after
1572
1563
  head_result = self.session._executor.head(self.expr, max_results)
1573
- count = self.session._executor.get_row_count(self.expr)
1564
+ row_count = self.session._executor.execute(self.expr.row_count()).to_py_scalar()
1574
1565
 
1575
- arrow = head_result.to_arrow_table()
1576
- df = io_pandas.arrow_to_pandas(arrow, schema=self.expr.schema)
1566
+ df = head_result.to_pandas()
1577
1567
  self._copy_index_to_pandas(df)
1578
- return df, count, head_result.query_job
1568
+ return df, row_count, head_result.query_job
1579
1569
 
1580
1570
  def promote_offsets(self, label: Label = None) -> typing.Tuple[Block, str]:
1581
1571
  expr, result_id = self._expr.promote_offsets()
@@ -18,7 +18,7 @@ from typing import Optional, Sequence, Tuple, TYPE_CHECKING
18
18
  import google.cloud.bigquery as bigquery
19
19
 
20
20
  from bigframes.core import rewrite
21
- from bigframes.core.compile import compiler
21
+ from bigframes.core.compile import compiler, configs
22
22
 
23
23
  if TYPE_CHECKING:
24
24
  import bigframes.core.nodes
@@ -34,7 +34,7 @@ class SQLCompiler:
34
34
  limit: Optional[int] = None,
35
35
  ) -> str:
36
36
  """Compile node into sql where rows are sorted with ORDER BY."""
37
- request = compiler.CompileRequest(node, sort_rows=ordered, peek_count=limit)
37
+ request = configs.CompileRequest(node, sort_rows=ordered, peek_count=limit)
38
38
  return compiler.compile_sql(request).sql
39
39
 
40
40
  def compile_raw(
@@ -44,7 +44,7 @@ class SQLCompiler:
44
44
  str, Sequence[bigquery.SchemaField], bigframes.core.ordering.RowOrdering
45
45
  ]:
46
46
  """Compile node into sql that exposes all columns, including hidden ordering-only columns."""
47
- request = compiler.CompileRequest(
47
+ request = configs.CompileRequest(
48
48
  node, sort_rows=False, materialize_all_order_keys=True
49
49
  )
50
50
  result = compiler.compile_sql(request)
@@ -288,13 +288,7 @@ class UnorderedIR:
288
288
  def from_polars(
289
289
  cls, pa_table: pa.Table, schema: Sequence[bigquery.SchemaField]
290
290
  ) -> UnorderedIR:
291
- # TODO: add offsets
292
- """
293
- Builds an in-memory only (SQL only) expr from a pandas dataframe.
294
-
295
- Assumed that the dataframe has unique string column names and bigframes-suppported
296
- dtypes.
297
- """
291
+ """Builds an in-memory only (SQL only) expr from a pyarrow table."""
298
292
  import bigframes_vendored.ibis.backends.bigquery.datatypes as third_party_ibis_bqtypes
299
293
 
300
294
  # derive the ibis schema from the original pandas schema
@@ -22,13 +22,13 @@ import bigframes_vendored.ibis.backends.bigquery as ibis_bigquery
22
22
  import bigframes_vendored.ibis.expr.api as ibis_api
23
23
  import bigframes_vendored.ibis.expr.datatypes as ibis_dtypes
24
24
  import bigframes_vendored.ibis.expr.types as ibis_types
25
- import google.cloud.bigquery
26
25
  import pyarrow as pa
27
26
 
28
27
  from bigframes import dtypes, operations
29
28
  from bigframes.core import expression
30
29
  import bigframes.core.compile.compiled as compiled
31
30
  import bigframes.core.compile.concat as concat_impl
31
+ import bigframes.core.compile.configs as configs
32
32
  import bigframes.core.compile.explode
33
33
  import bigframes.core.compile.scalar_op_compiler as compile_scalar
34
34
  import bigframes.core.nodes as nodes
@@ -39,22 +39,7 @@ if typing.TYPE_CHECKING:
39
39
  import bigframes.core
40
40
 
41
41
 
42
- @dataclasses.dataclass(frozen=True)
43
- class CompileRequest:
44
- node: nodes.BigFrameNode
45
- sort_rows: bool
46
- materialize_all_order_keys: bool = False
47
- peek_count: typing.Optional[int] = None
48
-
49
-
50
- @dataclasses.dataclass(frozen=True)
51
- class CompileResult:
52
- sql: str
53
- sql_schema: typing.Sequence[google.cloud.bigquery.SchemaField]
54
- row_order: Optional[bf_ordering.RowOrdering]
55
-
56
-
57
- def compile_sql(request: CompileRequest) -> CompileResult:
42
+ def compile_sql(request: configs.CompileRequest) -> configs.CompileResult:
58
43
  output_names = tuple((expression.DerefOp(id), id.sql) for id in request.node.ids)
59
44
  result_node = nodes.ResultNode(
60
45
  request.node,
@@ -74,7 +59,7 @@ def compile_sql(request: CompileRequest) -> CompileResult:
74
59
  if request.sort_rows:
75
60
  result_node = cast(nodes.ResultNode, rewrites.column_pruning(result_node))
76
61
  sql = compile_result_node(result_node)
77
- return CompileResult(
62
+ return configs.CompileResult(
78
63
  sql, result_node.schema.to_bigquery(), result_node.order_by
79
64
  )
80
65
 
@@ -88,7 +73,7 @@ def compile_sql(request: CompileRequest) -> CompileResult:
88
73
  ordering if ordering.referenced_columns.issubset(result_node.ids) else None
89
74
  )
90
75
  assert (not request.materialize_all_order_keys) or (output_order is not None)
91
- return CompileResult(sql, result_node.schema.to_bigquery(), output_order)
76
+ return configs.CompileResult(sql, result_node.schema.to_bigquery(), output_order)
92
77
 
93
78
 
94
79
  def _replace_unsupported_ops(node: nodes.BigFrameNode):
@@ -183,16 +168,13 @@ def compile_readlocal(node: nodes.ReadLocalNode, *args):
183
168
  pa_table = node.local_data_source.data
184
169
  bq_schema = node.schema.to_bigquery()
185
170
 
186
- pa_table = pa_table.select(list(item.source_id for item in node.scan_list.items))
187
- pa_table = pa_table.rename_columns(
188
- {item.source_id: item.id.sql for item in node.scan_list.items}
189
- )
171
+ pa_table = pa_table.select([item.source_id for item in node.scan_list.items])
172
+ pa_table = pa_table.rename_columns([item.id.sql for item in node.scan_list.items])
190
173
 
191
174
  if offsets:
192
175
  pa_table = pa_table.append_column(
193
176
  offsets, pa.array(range(pa_table.num_rows), type=pa.int64())
194
177
  )
195
- bq_schema = (*bq_schema, google.cloud.bigquery.SchemaField(offsets, "INT64"))
196
178
  return compiled.UnorderedIR.from_polars(pa_table, bq_schema)
197
179
 
198
180
 
@@ -270,11 +252,6 @@ def compile_concat(node: nodes.ConcatNode, *children: compiled.UnorderedIR):
270
252
  return concat_impl.concat_unordered(children, output_ids)
271
253
 
272
254
 
273
- @_compile_node.register
274
- def compile_rowcount(node: nodes.RowCountNode, child: compiled.UnorderedIR):
275
- return child.row_count(name=node.col_id.sql)
276
-
277
-
278
255
  @_compile_node.register
279
256
  def compile_aggregate(node: nodes.AggregateNode, child: compiled.UnorderedIR):
280
257
  aggs = tuple((agg, id.sql) for agg, id in node.aggregations)
@@ -0,0 +1,36 @@
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
+ from __future__ import annotations
15
+
16
+ import dataclasses
17
+ import typing
18
+
19
+ import google.cloud.bigquery
20
+
21
+ from bigframes.core import nodes, ordering
22
+
23
+
24
+ @dataclasses.dataclass(frozen=True)
25
+ class CompileRequest:
26
+ node: nodes.BigFrameNode
27
+ sort_rows: bool
28
+ materialize_all_order_keys: bool = False
29
+ peek_count: typing.Optional[int] = None
30
+
31
+
32
+ @dataclasses.dataclass(frozen=True)
33
+ class CompileResult:
34
+ sql: str
35
+ sql_schema: typing.Sequence[google.cloud.bigquery.SchemaField]
36
+ row_order: typing.Optional[ordering.RowOrdering]
@@ -25,7 +25,7 @@ Core class:
25
25
  * `expression`: Models basic SQL expressions.
26
26
 
27
27
  Extended classes (not part of standard GoogleSQL syntax, but added for convenience):
28
- i
28
+
29
29
  * `ColumnExpression`: Represents column references.
30
30
  * `TableExpression`: Represents table references.
31
31
  * `AliasExpression`: Represents aliased expressions.
@@ -252,11 +252,6 @@ class PolarsCompiler:
252
252
  ]
253
253
  return self.compile_node(node.child).with_columns(new_cols)
254
254
 
255
- @compile_node.register
256
- def compile_rowcount(self, node: nodes.RowCountNode):
257
- df = cast(pl.LazyFrame, self.compile_node(node.child))
258
- return df.select(pl.len().alias(node.col_id.sql))
259
-
260
255
  @compile_node.register
261
256
  def compile_offsets(self, node: nodes.PromoteOffsetsNode):
262
257
  return self.compile_node(node.child).with_columns(
@@ -0,0 +1,18 @@
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
+ from __future__ import annotations
15
+
16
+ from bigframes.core.compile.sqlglot.compiler import SQLGlotCompiler
17
+
18
+ __all__ = ["SQLGlotCompiler"]
@@ -0,0 +1,168 @@
1
+ # Copyright 2023 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
+ from __future__ import annotations
15
+
16
+ import dataclasses
17
+ import functools
18
+ import itertools
19
+ import typing
20
+
21
+ from google.cloud import bigquery
22
+ import pyarrow as pa
23
+ import sqlglot.expressions as sge
24
+
25
+ from bigframes.core import expression, identifiers, nodes, rewrite
26
+ from bigframes.core.compile import configs
27
+ import bigframes.core.compile.sqlglot.scalar_compiler as scalar_compiler
28
+ import bigframes.core.compile.sqlglot.sqlglot_ir as ir
29
+ import bigframes.core.ordering as bf_ordering
30
+
31
+
32
+ @dataclasses.dataclass(frozen=True)
33
+ class SQLGlotCompiler:
34
+ """Compiles BigFrame nodes into SQL using SQLGlot."""
35
+
36
+ def compile(
37
+ self,
38
+ node: nodes.BigFrameNode,
39
+ *,
40
+ ordered: bool = True,
41
+ limit: typing.Optional[int] = None,
42
+ ) -> str:
43
+ """Compiles node into sql where rows are sorted with ORDER BY."""
44
+ request = configs.CompileRequest(node, sort_rows=ordered, peek_count=limit)
45
+ return self._compile_sql(request).sql
46
+
47
+ def compile_raw(
48
+ self,
49
+ node: nodes.BigFrameNode,
50
+ ) -> typing.Tuple[
51
+ str, typing.Sequence[bigquery.SchemaField], bf_ordering.RowOrdering
52
+ ]:
53
+ """Compiles node into sql that exposes all columns, including hidden
54
+ ordering-only columns."""
55
+ request = configs.CompileRequest(
56
+ node, sort_rows=False, materialize_all_order_keys=True
57
+ )
58
+ result = self._compile_sql(request)
59
+ assert result.row_order is not None
60
+ return result.sql, result.sql_schema, result.row_order
61
+
62
+ def _compile_sql(self, request: configs.CompileRequest) -> configs.CompileResult:
63
+ output_names = tuple(
64
+ (expression.DerefOp(id), id.sql) for id in request.node.ids
65
+ )
66
+ result_node = nodes.ResultNode(
67
+ request.node,
68
+ output_cols=output_names,
69
+ limit=request.peek_count,
70
+ )
71
+ if request.sort_rows:
72
+ # Can only pullup slice if we are doing ORDER BY in outermost SELECT
73
+ # Need to do this before replacing unsupported ops, as that will rewrite slice ops
74
+ result_node = rewrite.pull_up_limits(result_node)
75
+ result_node = _replace_unsupported_ops(result_node)
76
+ # prune before pulling up order to avoid unnnecessary row_number() ops
77
+ result_node = typing.cast(nodes.ResultNode, rewrite.column_pruning(result_node))
78
+ result_node = rewrite.defer_order(
79
+ result_node, output_hidden_row_keys=request.materialize_all_order_keys
80
+ )
81
+ if request.sort_rows:
82
+ result_node = typing.cast(
83
+ nodes.ResultNode, rewrite.column_pruning(result_node)
84
+ )
85
+ result_node = _remap_variables(result_node)
86
+ sql = self._compile_result_node(result_node)
87
+ return configs.CompileResult(
88
+ sql, result_node.schema.to_bigquery(), result_node.order_by
89
+ )
90
+
91
+ ordering: typing.Optional[bf_ordering.RowOrdering] = result_node.order_by
92
+ result_node = dataclasses.replace(result_node, order_by=None)
93
+ result_node = typing.cast(nodes.ResultNode, rewrite.column_pruning(result_node))
94
+
95
+ result_node = _remap_variables(result_node)
96
+ sql = self._compile_result_node(result_node)
97
+ # Return the ordering iff no extra columns are needed to define the row order
98
+ if ordering is not None:
99
+ output_order = (
100
+ ordering
101
+ if ordering.referenced_columns.issubset(result_node.ids)
102
+ else None
103
+ )
104
+ assert (not request.materialize_all_order_keys) or (output_order is not None)
105
+ return configs.CompileResult(
106
+ sql, result_node.schema.to_bigquery(), output_order
107
+ )
108
+
109
+ def _compile_result_node(self, root: nodes.ResultNode) -> str:
110
+ sqlglot_ir = compile_node(root.child)
111
+ # TODO: add order_by, limit, and selections to sqlglot_expr
112
+ return sqlglot_ir.sql
113
+
114
+
115
+ def _replace_unsupported_ops(node: nodes.BigFrameNode):
116
+ node = nodes.bottom_up(node, rewrite.rewrite_slice)
117
+ node = nodes.bottom_up(node, rewrite.rewrite_timedelta_expressions)
118
+ node = nodes.bottom_up(node, rewrite.rewrite_range_rolling)
119
+ return node
120
+
121
+
122
+ def _remap_variables(node: nodes.ResultNode) -> nodes.ResultNode:
123
+ """Remaps `ColumnId`s in the BFET of a `ResultNode` to produce deterministic UIDs."""
124
+
125
+ def anonymous_column_ids() -> typing.Generator[identifiers.ColumnId, None, None]:
126
+ for i in itertools.count():
127
+ yield identifiers.ColumnId(name=f"bfcol_{i}")
128
+
129
+ result_node, _ = rewrite.remap_variables(node, anonymous_column_ids())
130
+ return typing.cast(nodes.ResultNode, result_node)
131
+
132
+
133
+ @functools.lru_cache(maxsize=5000)
134
+ def compile_node(node: nodes.BigFrameNode) -> ir.SQLGlotIR:
135
+ """Compiles node into CompileArrayValue. Caches result."""
136
+ return node.reduce_up(lambda node, children: _compile_node(node, *children))
137
+
138
+
139
+ @functools.singledispatch
140
+ def _compile_node(
141
+ node: nodes.BigFrameNode, *compiled_children: ir.SQLGlotIR
142
+ ) -> ir.SQLGlotIR:
143
+ """Defines transformation but isn't cached, always use compile_node instead"""
144
+ raise ValueError(f"Can't compile unrecognized node: {node}")
145
+
146
+
147
+ @_compile_node.register
148
+ def compile_readlocal(node: nodes.ReadLocalNode, *args) -> ir.SQLGlotIR:
149
+ pa_table = node.local_data_source.data
150
+ pa_table = pa_table.select([item.source_id for item in node.scan_list.items])
151
+ pa_table = pa_table.rename_columns([item.id.sql for item in node.scan_list.items])
152
+
153
+ offsets = node.offsets_col.sql if node.offsets_col else None
154
+ if offsets:
155
+ pa_table = pa_table.append_column(
156
+ offsets, pa.array(range(pa_table.num_rows), type=pa.int64())
157
+ )
158
+
159
+ return ir.SQLGlotIR.from_pyarrow(pa_table, node.schema)
160
+
161
+
162
+ @_compile_node.register
163
+ def compile_selection(node: nodes.SelectionNode, child: ir.SQLGlotIR) -> ir.SQLGlotIR:
164
+ select_cols: typing.Dict[str, sge.Expression] = {
165
+ id.name: scalar_compiler.compile_scalar_expression(expr)
166
+ for expr, id in node.input_output_pairs
167
+ }
168
+ return child.select(select_cols)