google-cloud-bigquery 3.22.0__tar.gz → 3.23.1__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.
- {google-cloud-bigquery-3.22.0/google_cloud_bigquery.egg-info → google-cloud-bigquery-3.23.1}/PKG-INFO +1 -1
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_helpers.py +50 -2
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_versions_helpers.py +14 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/table.py +26 -34
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/version.py +1 -1
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1/google_cloud_bigquery.egg-info}/PKG-INFO +1 -1
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__helpers.py +112 -2
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_table.py +9 -1
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/LICENSE +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/MANIFEST.in +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/README.rst +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_http.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_job_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_pandas_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_pyarrow_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_tqdm_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/client.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dataset.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/connection.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/cursor.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/exceptions.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/types.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/encryption_configuration.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/enums.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/exceptions.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/external_config.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/format_options.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/iam.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/base.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/copy_.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/extract.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/load.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/query.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/line_arg_parser/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/line_arg_parser/exceptions.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/line_arg_parser/lexer.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/line_arg_parser/parser.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/line_arg_parser/visitors.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/magics.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/model.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/opentelemetry_tracing.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/py.typed +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/query.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/retry.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/routine/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/routine/routine.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/schema.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/standard_sql.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/types/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/types/encryption_config.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/types/model.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/types/model_reference.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/types/standard_sql.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/types/table_reference.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google_cloud_bigquery.egg-info/SOURCES.txt +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google_cloud_bigquery.egg-info/dependency_links.txt +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google_cloud_bigquery.egg-info/not-zip-safe +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google_cloud_bigquery.egg-info/requires.txt +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google_cloud_bigquery.egg-info/top_level.txt +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/setup.cfg +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/setup.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/characters.json +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/characters.jsonl +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/colors.avro +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/numeric_38_12.parquet +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/people.csv +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars.csv +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars.jsonl +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars_extreme.jsonl +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars_schema.json +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars_schema_csv.json +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/schema.json +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/scrub_datasets.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/conftest.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_arrow.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_client.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_job_retry.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_list_rows.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_magics.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_pandas.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_query.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_structs.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/_helpers/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/_helpers/test_from_json.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/conftest.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_base.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_copy.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_extract.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_load.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_load_config.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_query.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_query_config.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_query_pandas.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_query_stats.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/line_arg_parser/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/line_arg_parser/test_lexer.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/line_arg_parser/test_parser.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/line_arg_parser/test_visitors.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/model/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/model/test_model.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/model/test_model_reference.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/routine/__init__.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/routine/test_remote_function_options.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/routine/test_routine.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/routine/test_routine_argument.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/routine/test_routine_reference.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__http.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__job_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__pandas_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__pyarrow_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__versions_helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_client.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_create_dataset.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dataset.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi__helpers.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi_connection.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi_cursor.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi_types.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_delete_dataset.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_encryption_configuration.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_external_config.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_format_options.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_job_retry.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_legacy_types.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_datasets.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_jobs.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_models.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_projects.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_routines.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_tables.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_magics.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_opentelemetry_tracing.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_packaging.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_query.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_retry.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_schema.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_signature_compatibility.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_standard_sql_types.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_table_arrow.py +0 -0
- {google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_table_pandas.py +0 -0
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_helpers.py
RENAMED
|
@@ -50,6 +50,7 @@ _INTERVAL_PATTERN = re.compile(
|
|
|
50
50
|
r"(?P<days>-?\d+) "
|
|
51
51
|
r"(?P<time_sign>-?)(?P<hours>\d+):(?P<minutes>\d+):(?P<seconds>\d+)\.?(?P<fraction>\d*)?$"
|
|
52
52
|
)
|
|
53
|
+
_RANGE_PATTERN = re.compile(r"\[.*, .*\)")
|
|
53
54
|
|
|
54
55
|
BIGQUERY_EMULATOR_HOST = "BIGQUERY_EMULATOR_HOST"
|
|
55
56
|
"""Environment variable defining host for emulator."""
|
|
@@ -334,9 +335,8 @@ def _range_from_json(value, field):
|
|
|
334
335
|
The parsed range object from ``value`` if the ``field`` is not
|
|
335
336
|
null (otherwise it is :data:`None`).
|
|
336
337
|
"""
|
|
337
|
-
range_literal = re.compile(r"\[.*, .*\)")
|
|
338
338
|
if _not_null(value, field):
|
|
339
|
-
if
|
|
339
|
+
if _RANGE_PATTERN.match(value):
|
|
340
340
|
start, end = value[1:-1].split(", ")
|
|
341
341
|
start = _range_element_from_json(start, field.range_element_type)
|
|
342
342
|
end = _range_element_from_json(end, field.range_element_type)
|
|
@@ -531,6 +531,52 @@ def _time_to_json(value):
|
|
|
531
531
|
return value
|
|
532
532
|
|
|
533
533
|
|
|
534
|
+
def _range_element_to_json(value, element_type=None):
|
|
535
|
+
"""Coerce 'value' to an JSON-compatible representation."""
|
|
536
|
+
if value is None:
|
|
537
|
+
return None
|
|
538
|
+
elif isinstance(value, str):
|
|
539
|
+
if value.upper() in ("UNBOUNDED", "NULL"):
|
|
540
|
+
return None
|
|
541
|
+
else:
|
|
542
|
+
# We do not enforce range element value to be valid to reduce
|
|
543
|
+
# redundancy with backend.
|
|
544
|
+
return value
|
|
545
|
+
elif (
|
|
546
|
+
element_type and element_type.element_type.upper() in _SUPPORTED_RANGE_ELEMENTS
|
|
547
|
+
):
|
|
548
|
+
converter = _SCALAR_VALUE_TO_JSON_ROW.get(element_type.element_type.upper())
|
|
549
|
+
return converter(value)
|
|
550
|
+
else:
|
|
551
|
+
raise ValueError(
|
|
552
|
+
f"Unsupported RANGE element type {element_type}, or "
|
|
553
|
+
"element type is empty. Must be DATE, DATETIME, or "
|
|
554
|
+
"TIMESTAMP"
|
|
555
|
+
)
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
def _range_field_to_json(range_element_type, value):
|
|
559
|
+
"""Coerce 'value' to an JSON-compatible representation."""
|
|
560
|
+
if isinstance(value, str):
|
|
561
|
+
# string literal
|
|
562
|
+
if _RANGE_PATTERN.match(value):
|
|
563
|
+
start, end = value[1:-1].split(", ")
|
|
564
|
+
else:
|
|
565
|
+
raise ValueError(f"RANGE literal {value} has incorrect format")
|
|
566
|
+
elif isinstance(value, dict):
|
|
567
|
+
# dictionary
|
|
568
|
+
start = value.get("start")
|
|
569
|
+
end = value.get("end")
|
|
570
|
+
else:
|
|
571
|
+
raise ValueError(
|
|
572
|
+
f"Unsupported type of RANGE value {value}, must be " "string or dict"
|
|
573
|
+
)
|
|
574
|
+
|
|
575
|
+
start = _range_element_to_json(start, range_element_type)
|
|
576
|
+
end = _range_element_to_json(end, range_element_type)
|
|
577
|
+
return {"start": start, "end": end}
|
|
578
|
+
|
|
579
|
+
|
|
534
580
|
# Converters used for scalar values marshalled to the BigQuery API, such as in
|
|
535
581
|
# query parameters or the tabledata.insert API.
|
|
536
582
|
_SCALAR_VALUE_TO_JSON_ROW = {
|
|
@@ -676,6 +722,8 @@ def _single_field_to_json(field, row_value):
|
|
|
676
722
|
|
|
677
723
|
if field.field_type == "RECORD":
|
|
678
724
|
return _record_field_to_json(field.fields, row_value)
|
|
725
|
+
if field.field_type == "RANGE":
|
|
726
|
+
return _range_field_to_json(field.range_element_type, row_value)
|
|
679
727
|
|
|
680
728
|
return _scalar_field_to_json(field, row_value)
|
|
681
729
|
|
|
@@ -26,6 +26,9 @@ _MIN_BQ_STORAGE_VERSION = packaging.version.Version("2.0.0")
|
|
|
26
26
|
_BQ_STORAGE_OPTIONAL_READ_SESSION_VERSION = packaging.version.Version("2.6.0")
|
|
27
27
|
_MIN_PANDAS_VERSION = packaging.version.Version("1.1.0")
|
|
28
28
|
|
|
29
|
+
_MIN_PANDAS_VERSION_RANGE = packaging.version.Version("1.5.0")
|
|
30
|
+
_MIN_PYARROW_VERSION_RANGE = packaging.version.Version("10.0.1")
|
|
31
|
+
|
|
29
32
|
|
|
30
33
|
class PyarrowVersions:
|
|
31
34
|
"""Version comparisons for pyarrow package."""
|
|
@@ -234,3 +237,14 @@ class PandasVersions:
|
|
|
234
237
|
|
|
235
238
|
|
|
236
239
|
PANDAS_VERSIONS = PandasVersions()
|
|
240
|
+
|
|
241
|
+
# Since RANGE support in pandas requires specific versions
|
|
242
|
+
# of both pyarrow and pandas, we make this a separate
|
|
243
|
+
# constant instead of as a property of PANDAS_VERSIONS
|
|
244
|
+
# or PYARROW_VERSIONS.
|
|
245
|
+
SUPPORTS_RANGE_PYARROW = (
|
|
246
|
+
PANDAS_VERSIONS.try_import() is not None
|
|
247
|
+
and PANDAS_VERSIONS.installed_version >= _MIN_PANDAS_VERSION_RANGE
|
|
248
|
+
and PYARROW_VERSIONS.try_import() is not None
|
|
249
|
+
and PYARROW_VERSIONS.installed_version >= _MIN_PYARROW_VERSION_RANGE
|
|
250
|
+
)
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/table.py
RENAMED
|
@@ -100,9 +100,25 @@ _NO_SUPPORTED_DTYPE = (
|
|
|
100
100
|
"because the necessary `__from_arrow__` attribute is missing."
|
|
101
101
|
)
|
|
102
102
|
|
|
103
|
+
_RANGE_PYARROW_WARNING = (
|
|
104
|
+
"Unable to represent RANGE schema as struct using pandas ArrowDtype. Using "
|
|
105
|
+
"`object` instead. To use ArrowDtype, use pandas >= 1.5 and "
|
|
106
|
+
"pyarrow >= 10.0.1."
|
|
107
|
+
)
|
|
108
|
+
|
|
103
109
|
# How many of the total rows need to be downloaded already for us to skip
|
|
104
110
|
# calling the BQ Storage API?
|
|
105
|
-
|
|
111
|
+
#
|
|
112
|
+
# In microbenchmarks on 2024-05-21, I (tswast@) measure that at about 2 MB of
|
|
113
|
+
# remaining results, it's faster to use the BQ Storage Read API to download
|
|
114
|
+
# the results than use jobs.getQueryResults. Since we don't have a good way to
|
|
115
|
+
# know the remaining bytes, we estimate by remaining number of rows.
|
|
116
|
+
#
|
|
117
|
+
# Except when rows themselves are larger, I observe that the a single page of
|
|
118
|
+
# results will be around 10 MB. Therefore, the proportion of rows already
|
|
119
|
+
# downloaded should be 10 (first page) / 12 (all results) or less for it to be
|
|
120
|
+
# worth it to make a call to jobs.getQueryResults.
|
|
121
|
+
ALMOST_COMPLETELY_CACHED_RATIO = 0.833333
|
|
106
122
|
|
|
107
123
|
|
|
108
124
|
def _reference_getter(table):
|
|
@@ -2279,26 +2295,18 @@ class RowIterator(HTTPIterator):
|
|
|
2279
2295
|
time_dtype = db_dtypes.TimeDtype()
|
|
2280
2296
|
|
|
2281
2297
|
if range_date_dtype is DefaultPandasDTypes.RANGE_DATE_DTYPE:
|
|
2282
|
-
|
|
2298
|
+
if _versions_helpers.SUPPORTS_RANGE_PYARROW:
|
|
2283
2299
|
range_date_dtype = pandas.ArrowDtype(
|
|
2284
2300
|
pyarrow.struct(
|
|
2285
2301
|
[("start", pyarrow.date32()), ("end", pyarrow.date32())]
|
|
2286
2302
|
)
|
|
2287
2303
|
)
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
# only supports upto pandas 1.3. If pandas.ArrowDtype is not
|
|
2291
|
-
# present, we raise a warning and set range_date_dtype to None.
|
|
2292
|
-
msg = (
|
|
2293
|
-
"Unable to find class ArrowDtype in pandas, setting "
|
|
2294
|
-
"range_date_dtype to be None. To use ArrowDtype, please "
|
|
2295
|
-
"use pandas >= 1.5 and python >= 3.8."
|
|
2296
|
-
)
|
|
2297
|
-
warnings.warn(msg)
|
|
2304
|
+
else:
|
|
2305
|
+
warnings.warn(_RANGE_PYARROW_WARNING)
|
|
2298
2306
|
range_date_dtype = None
|
|
2299
2307
|
|
|
2300
2308
|
if range_datetime_dtype is DefaultPandasDTypes.RANGE_DATETIME_DTYPE:
|
|
2301
|
-
|
|
2309
|
+
if _versions_helpers.SUPPORTS_RANGE_PYARROW:
|
|
2302
2310
|
range_datetime_dtype = pandas.ArrowDtype(
|
|
2303
2311
|
pyarrow.struct(
|
|
2304
2312
|
[
|
|
@@ -2307,20 +2315,12 @@ class RowIterator(HTTPIterator):
|
|
|
2307
2315
|
]
|
|
2308
2316
|
)
|
|
2309
2317
|
)
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
# only supports upto pandas 1.3. If pandas.ArrowDtype is not
|
|
2313
|
-
# present, we raise a warning and set range_datetime_dtype to None.
|
|
2314
|
-
msg = (
|
|
2315
|
-
"Unable to find class ArrowDtype in pandas, setting "
|
|
2316
|
-
"range_datetime_dtype to be None. To use ArrowDtype, "
|
|
2317
|
-
"please use pandas >= 1.5 and python >= 3.8."
|
|
2318
|
-
)
|
|
2319
|
-
warnings.warn(msg)
|
|
2318
|
+
else:
|
|
2319
|
+
warnings.warn(_RANGE_PYARROW_WARNING)
|
|
2320
2320
|
range_datetime_dtype = None
|
|
2321
2321
|
|
|
2322
2322
|
if range_timestamp_dtype is DefaultPandasDTypes.RANGE_TIMESTAMP_DTYPE:
|
|
2323
|
-
|
|
2323
|
+
if _versions_helpers.SUPPORTS_RANGE_PYARROW:
|
|
2324
2324
|
range_timestamp_dtype = pandas.ArrowDtype(
|
|
2325
2325
|
pyarrow.struct(
|
|
2326
2326
|
[
|
|
@@ -2329,16 +2329,8 @@ class RowIterator(HTTPIterator):
|
|
|
2329
2329
|
]
|
|
2330
2330
|
)
|
|
2331
2331
|
)
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
# only supports upto pandas 1.3. If pandas.ArrowDtype is not
|
|
2335
|
-
# present, we raise a warning and set range_timestamp_dtype to None.
|
|
2336
|
-
msg = (
|
|
2337
|
-
"Unable to find class ArrowDtype in pandas, setting "
|
|
2338
|
-
"range_timestamp_dtype to be None. To use ArrowDtype, "
|
|
2339
|
-
"please use pandas >= 1.5 and python >= 3.8."
|
|
2340
|
-
)
|
|
2341
|
-
warnings.warn(msg)
|
|
2332
|
+
else:
|
|
2333
|
+
warnings.warn(_RANGE_PYARROW_WARNING)
|
|
2342
2334
|
range_timestamp_dtype = None
|
|
2343
2335
|
|
|
2344
2336
|
if bool_dtype is not None and not hasattr(bool_dtype, "__from_arrow__"):
|
|
@@ -1049,10 +1049,22 @@ class Test_time_to_json(unittest.TestCase):
|
|
|
1049
1049
|
self.assertEqual(self._call_fut(when), "12:13:41")
|
|
1050
1050
|
|
|
1051
1051
|
|
|
1052
|
-
def _make_field(
|
|
1052
|
+
def _make_field(
|
|
1053
|
+
field_type,
|
|
1054
|
+
mode="NULLABLE",
|
|
1055
|
+
name="testing",
|
|
1056
|
+
fields=(),
|
|
1057
|
+
range_element_type=None,
|
|
1058
|
+
):
|
|
1053
1059
|
from google.cloud.bigquery.schema import SchemaField
|
|
1054
1060
|
|
|
1055
|
-
return SchemaField(
|
|
1061
|
+
return SchemaField(
|
|
1062
|
+
name=name,
|
|
1063
|
+
field_type=field_type,
|
|
1064
|
+
mode=mode,
|
|
1065
|
+
fields=fields,
|
|
1066
|
+
range_element_type=range_element_type,
|
|
1067
|
+
)
|
|
1056
1068
|
|
|
1057
1069
|
|
|
1058
1070
|
class Test_scalar_field_to_json(unittest.TestCase):
|
|
@@ -1251,6 +1263,98 @@ class Test_record_field_to_json(unittest.TestCase):
|
|
|
1251
1263
|
)
|
|
1252
1264
|
|
|
1253
1265
|
|
|
1266
|
+
class Test_range_field_to_json(unittest.TestCase):
|
|
1267
|
+
def _call_fut(self, field, value):
|
|
1268
|
+
from google.cloud.bigquery._helpers import _range_field_to_json
|
|
1269
|
+
|
|
1270
|
+
return _range_field_to_json(field, value)
|
|
1271
|
+
|
|
1272
|
+
def test_w_date(self):
|
|
1273
|
+
field = _make_field("RANGE", range_element_type="DATE")
|
|
1274
|
+
start = datetime.date(2016, 12, 3)
|
|
1275
|
+
original = {"start": start}
|
|
1276
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1277
|
+
expected = {"start": "2016-12-03", "end": None}
|
|
1278
|
+
self.assertEqual(converted, expected)
|
|
1279
|
+
|
|
1280
|
+
def test_w_date_string(self):
|
|
1281
|
+
field = _make_field("RANGE", range_element_type="DATE")
|
|
1282
|
+
original = {"start": "2016-12-03"}
|
|
1283
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1284
|
+
expected = {"start": "2016-12-03", "end": None}
|
|
1285
|
+
self.assertEqual(converted, expected)
|
|
1286
|
+
|
|
1287
|
+
def test_w_datetime(self):
|
|
1288
|
+
field = _make_field("RANGE", range_element_type="DATETIME")
|
|
1289
|
+
start = datetime.datetime(2016, 12, 3, 14, 11, 27, 123456)
|
|
1290
|
+
original = {"start": start}
|
|
1291
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1292
|
+
expected = {"start": "2016-12-03T14:11:27.123456", "end": None}
|
|
1293
|
+
self.assertEqual(converted, expected)
|
|
1294
|
+
|
|
1295
|
+
def test_w_datetime_string(self):
|
|
1296
|
+
field = _make_field("RANGE", range_element_type="DATETIME")
|
|
1297
|
+
original = {"start": "2016-12-03T14:11:27.123456"}
|
|
1298
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1299
|
+
expected = {"start": "2016-12-03T14:11:27.123456", "end": None}
|
|
1300
|
+
self.assertEqual(converted, expected)
|
|
1301
|
+
|
|
1302
|
+
def test_w_timestamp(self):
|
|
1303
|
+
from google.cloud._helpers import UTC
|
|
1304
|
+
|
|
1305
|
+
field = _make_field("RANGE", range_element_type="TIMESTAMP")
|
|
1306
|
+
start = datetime.datetime(2016, 12, 3, 14, 11, 27, 123456, tzinfo=UTC)
|
|
1307
|
+
original = {"start": start}
|
|
1308
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1309
|
+
expected = {"start": "2016-12-03T14:11:27.123456Z", "end": None}
|
|
1310
|
+
self.assertEqual(converted, expected)
|
|
1311
|
+
|
|
1312
|
+
def test_w_timestamp_string(self):
|
|
1313
|
+
field = _make_field("RANGE", range_element_type="TIMESTAMP")
|
|
1314
|
+
original = {"start": "2016-12-03T14:11:27.123456Z"}
|
|
1315
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1316
|
+
expected = {"start": "2016-12-03T14:11:27.123456Z", "end": None}
|
|
1317
|
+
self.assertEqual(converted, expected)
|
|
1318
|
+
|
|
1319
|
+
def test_w_timestamp_float(self):
|
|
1320
|
+
field = _make_field("RANGE", range_element_type="TIMESTAMP")
|
|
1321
|
+
original = {"start": 12.34567}
|
|
1322
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1323
|
+
expected = {"start": 12.34567, "end": None}
|
|
1324
|
+
self.assertEqual(converted, expected)
|
|
1325
|
+
|
|
1326
|
+
def test_w_string_literal(self):
|
|
1327
|
+
field = _make_field("RANGE", range_element_type="DATE")
|
|
1328
|
+
original = "[2016-12-03, UNBOUNDED)"
|
|
1329
|
+
converted = self._call_fut(field.range_element_type, original)
|
|
1330
|
+
expected = {"start": "2016-12-03", "end": None}
|
|
1331
|
+
self.assertEqual(converted, expected)
|
|
1332
|
+
|
|
1333
|
+
def test_w_unsupported_range_element_type(self):
|
|
1334
|
+
field = _make_field("RANGE", range_element_type="TIME")
|
|
1335
|
+
with self.assertRaises(ValueError):
|
|
1336
|
+
self._call_fut(
|
|
1337
|
+
field.range_element_type,
|
|
1338
|
+
{"start": datetime.time(12, 13, 41)},
|
|
1339
|
+
)
|
|
1340
|
+
|
|
1341
|
+
def test_w_no_range_element_type(self):
|
|
1342
|
+
field = _make_field("RANGE")
|
|
1343
|
+
with self.assertRaises(ValueError):
|
|
1344
|
+
self._call_fut(field.range_element_type, "2016-12-03")
|
|
1345
|
+
|
|
1346
|
+
def test_w_incorrect_literal_format(self):
|
|
1347
|
+
field = _make_field("RANGE", range_element_type="DATE")
|
|
1348
|
+
original = "[2016-12-03, UNBOUNDED]"
|
|
1349
|
+
with self.assertRaises(ValueError):
|
|
1350
|
+
self._call_fut(field.range_element_type, original)
|
|
1351
|
+
|
|
1352
|
+
def test_w_unsupported_representation(self):
|
|
1353
|
+
field = _make_field("RANGE", range_element_type="DATE")
|
|
1354
|
+
with self.assertRaises(ValueError):
|
|
1355
|
+
self._call_fut(field.range_element_type, object())
|
|
1356
|
+
|
|
1357
|
+
|
|
1254
1358
|
class Test_field_to_json(unittest.TestCase):
|
|
1255
1359
|
def _call_fut(self, field, value):
|
|
1256
1360
|
from google.cloud.bigquery._helpers import _field_to_json
|
|
@@ -1285,6 +1389,12 @@ class Test_field_to_json(unittest.TestCase):
|
|
|
1285
1389
|
converted = self._call_fut(field, original)
|
|
1286
1390
|
self.assertEqual(converted, str(original))
|
|
1287
1391
|
|
|
1392
|
+
def test_w_range(self):
|
|
1393
|
+
field = _make_field("RANGE", range_element_type="DATE")
|
|
1394
|
+
original = {"start": "2016-12-03", "end": "2024-12-03"}
|
|
1395
|
+
converted = self._call_fut(field, original)
|
|
1396
|
+
self.assertEqual(converted, original)
|
|
1397
|
+
|
|
1288
1398
|
|
|
1289
1399
|
class Test_snake_to_camel_case(unittest.TestCase):
|
|
1290
1400
|
def _call_fut(self, value):
|
|
@@ -2307,9 +2307,17 @@ class TestRowIterator(unittest.TestCase):
|
|
|
2307
2307
|
rows = [
|
|
2308
2308
|
{"f": [{"v": "Phred Phlyntstone"}, {"v": "32"}]},
|
|
2309
2309
|
{"f": [{"v": "Bharney Rhubble"}, {"v": "33"}]},
|
|
2310
|
+
{"f": [{"v": "Whillma Phlyntstone"}, {"v": "27"}]},
|
|
2311
|
+
{"f": [{"v": "Bhetty Rhubble"}, {"v": "28"}]},
|
|
2312
|
+
{"f": [{"v": "Pebbles Phlyntstone"}, {"v": "4"}]},
|
|
2313
|
+
{"f": [{"v": "Bamm-Bamm Rhubble"}, {"v": "5"}]},
|
|
2314
|
+
{"f": [{"v": "Joseph Rockhead"}, {"v": "32"}]},
|
|
2315
|
+
{"f": [{"v": "Perry Masonry"}, {"v": "33"}]},
|
|
2310
2316
|
]
|
|
2311
2317
|
first_page = {"pageToken": "next-page", "rows": rows}
|
|
2312
|
-
iterator = self._make_one(
|
|
2318
|
+
iterator = self._make_one(
|
|
2319
|
+
first_page_response=first_page, total_rows=len(rows) + 1
|
|
2320
|
+
)
|
|
2313
2321
|
self.assertTrue(iterator._is_almost_completely_cached())
|
|
2314
2322
|
|
|
2315
2323
|
def test__is_almost_completely_cached_returns_true_with_no_rows_remaining(self):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/__init__.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_http.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_job_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/_tqdm_helpers.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/client.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/cursor.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/dbapi/types.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/enums.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/__init__.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/base.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/copy_.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/extract.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/load.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/job/query.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/magics/magics.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/model.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/py.typed
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/query.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/retry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/schema.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery/standard_sql.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/google/cloud/bigquery_v2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/numeric_38_12.parquet
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars_extreme.jsonl
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars_schema.json
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/data/scalars_schema_csv.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_job_retry.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/system/test_list_rows.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/_helpers/__init__.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/_helpers/test_from_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_load_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_query_config.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_query_pandas.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/job/test_query_stats.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/line_arg_parser/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/model/test_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/routine/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/routine/test_routine.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__job_helpers.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__pandas_helpers.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__pyarrow_helpers.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test__versions_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_create_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi__helpers.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi_connection.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi_cursor.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_dbapi_types.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_delete_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_external_config.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_format_options.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_legacy_types.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_datasets.py
RENAMED
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_models.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_projects.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_routines.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_list_tables.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_standard_sql_types.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_table_arrow.py
RENAMED
|
File without changes
|
{google-cloud-bigquery-3.22.0 → google-cloud-bigquery-3.23.1}/tests/unit/test_table_pandas.py
RENAMED
|
File without changes
|