google-cloud-bigquery 3.45.0__tar.gz → 3.45.2__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.45.0/google_cloud_bigquery.egg-info → google_cloud_bigquery-3.45.2}/PKG-INFO +1 -1
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/client.py +13 -3
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/table.py +0 -17
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/version.py +1 -1
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2/google_cloud_bigquery.egg-info}/PKG-INFO +1 -1
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/SOURCES.txt +1 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_client.py +46 -24
- google_cloud_bigquery-3.45.2/tests/unit/test_docs.py +97 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_table.py +229 -273
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/LICENSE +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/MANIFEST.in +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/README.rst +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_http.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_job_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_pandas_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_pyarrow_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_string_references.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_tqdm_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_versions_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dataset.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/connection.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/cursor.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/exceptions.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/types.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/encryption_configuration.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/enums.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/exceptions.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/external_config.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/format_options.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/iam.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/base.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/copy_.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/extract.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/load.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/query.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/exceptions.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/lexer.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/parser.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/visitors.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/magics.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/model.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/opentelemetry_tracing.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/py.typed +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/query.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/routine/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/routine/routine.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/schema.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/standard_sql.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/encryption_config.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/model.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/model_reference.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/standard_sql.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/table_reference.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/dependency_links.txt +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/requires.txt +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/top_level.txt +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/pyproject.toml +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/setup.cfg +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/setup.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/characters.json +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/characters.jsonl +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/colors.avro +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/numeric_38_12.parquet +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/people.csv +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/pico.csv +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/pico_schema.json +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/scalars.csv +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/scalars.jsonl +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/scalars_extreme.jsonl +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/scalars_schema.json +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/scalars_schema_csv.json +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/data/schema.json +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/scrub_datasets.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/conftest.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_arrow.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_client.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_list_rows.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_magics.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_pandas.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_query.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_ssl_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/system/test_structs.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/test_cell_data_parser.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/test_data_frame_cell_data_parser.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/test_scalar_query_param_parser.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/conftest.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_async_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_base.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_copy.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_extract.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_load.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_load_config.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_config.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_pandas.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_stats.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/test_lexer.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/test_parser.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/test_visitors.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/model/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/model/test_model.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/model/test_model_reference.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/routine/__init__.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_external_runtime_options.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_remote_function_options.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_routine.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_routine_argument.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_routine_reference.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test__helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test__http.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test__job_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test__job_helpers_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test__pandas_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test__pyarrow_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test__versions_helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_bigframes.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_resumable_media_upload.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_create_dataset.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_dataset.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi__helpers.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_connection.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_cursor.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_types.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_delete_dataset.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_encryption_configuration.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_external_config.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_format_options.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_legacy_types.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_datasets.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_jobs.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_models.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_projects.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_routines.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_tables.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_magics.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_opentelemetry_tracing.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_packaging.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_query.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_query_results_format_arrow.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_retry.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_schema.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_signature_compatibility.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_standard_sql_types.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_string_references.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_table_arrow.py +0 -0
- {google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/tests/unit/test_table_pandas.py +0 -0
{google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/client.py
RENAMED
|
@@ -78,6 +78,9 @@ from google.cloud.bigquery import (
|
|
|
78
78
|
job,
|
|
79
79
|
)
|
|
80
80
|
from google.cloud.bigquery import exceptions as bq_exceptions
|
|
81
|
+
from google.cloud.bigquery import (
|
|
82
|
+
version as bq_version,
|
|
83
|
+
)
|
|
81
84
|
from google.cloud.bigquery._helpers import (
|
|
82
85
|
_DEFAULT_HOST,
|
|
83
86
|
_DEFAULT_HOST_TEMPLATE,
|
|
@@ -148,7 +151,7 @@ _MULTIPART_URL_TEMPLATE = _BASE_UPLOAD_TEMPLATE + "multipart"
|
|
|
148
151
|
_RESUMABLE_URL_TEMPLATE = _BASE_UPLOAD_TEMPLATE + "resumable"
|
|
149
152
|
_GENERIC_CONTENT_TYPE = "*/*"
|
|
150
153
|
_READ_LESS_THAN_SIZE = (
|
|
151
|
-
"Size {:d} was specified but the file-like object only had
|
|
154
|
+
"Size {:d} was specified but the file-like object only had {:d} bytes remaining."
|
|
152
155
|
)
|
|
153
156
|
_NEED_TABLE_ARGUMENT = (
|
|
154
157
|
"The table argument should be a table ID string, Table, or TableReference"
|
|
@@ -641,9 +644,16 @@ class Client(ClientWithProject):
|
|
|
641
644
|
pandas_gbq = None # type: ignore
|
|
642
645
|
|
|
643
646
|
if pandas_gbq is None:
|
|
644
|
-
|
|
647
|
+
# Even if pandas-gbq isn't installed, attribute all
|
|
648
|
+
# to_dataframe/to_arrow usage the same as we do the recommended
|
|
649
|
+
# (pandas-gbq) code paths.
|
|
650
|
+
pandas_user_agent = "pandas-gbq/0.0.0"
|
|
645
651
|
else:
|
|
646
|
-
|
|
652
|
+
pandas_user_agent = f"pandas-gbq/{pandas_gbq.__version__}"
|
|
653
|
+
|
|
654
|
+
# Track the google-cloud-bigquery version as "legacy" because this code
|
|
655
|
+
# path is intended to be migrated to pandas-gbq itself.
|
|
656
|
+
user_agent = f"legacy-gcb/{bq_version.__version__} {pandas_user_agent}"
|
|
647
657
|
|
|
648
658
|
if client_info is None:
|
|
649
659
|
amended_client_info = google.api_core.gapic_v1.client_info.ClientInfo(
|
{google_cloud_bigquery-3.45.0 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/table.py
RENAMED
|
@@ -20,7 +20,6 @@ import base64
|
|
|
20
20
|
import copy
|
|
21
21
|
import datetime
|
|
22
22
|
import functools
|
|
23
|
-
import logging
|
|
24
23
|
import operator
|
|
25
24
|
import typing
|
|
26
25
|
import warnings
|
|
@@ -87,7 +86,6 @@ if typing.TYPE_CHECKING: # pragma: NO COVER
|
|
|
87
86
|
from google.cloud import bigquery_storage # type: ignore
|
|
88
87
|
from google.cloud.bigquery.dataset import DatasetReference
|
|
89
88
|
|
|
90
|
-
_LOGGER = logging.getLogger(__name__)
|
|
91
89
|
|
|
92
90
|
_NO_GEOPANDAS_ERROR = (
|
|
93
91
|
"The geopandas library is not installed, please install "
|
|
@@ -2993,21 +2991,6 @@ class RowIterator(HTTPIterator):
|
|
|
2993
2991
|
create_bqstorage_client = False
|
|
2994
2992
|
bqstorage_client = None
|
|
2995
2993
|
|
|
2996
|
-
if _versions_helpers.PANDAS_GBQ_VERSIONS.is_delegation_supported:
|
|
2997
|
-
try:
|
|
2998
|
-
client_info = getattr(
|
|
2999
|
-
getattr(self.client, "_connection", None), "_client_info", None
|
|
3000
|
-
)
|
|
3001
|
-
if client_info:
|
|
3002
|
-
ua = getattr(client_info, "user_agent", None) or ""
|
|
3003
|
-
if "pandas-gbq" not in ua:
|
|
3004
|
-
version = (
|
|
3005
|
-
_versions_helpers.PANDAS_GBQ_VERSIONS.installed_version
|
|
3006
|
-
)
|
|
3007
|
-
client_info.user_agent = f"{ua} pandas-gbq/{version}".strip()
|
|
3008
|
-
except Exception as exc:
|
|
3009
|
-
_LOGGER.debug("Failed to update telemetry user-agent: %s", exc)
|
|
3010
|
-
|
|
3011
2994
|
with warnings.catch_warnings():
|
|
3012
2995
|
warnings.filterwarnings(
|
|
3013
2996
|
"ignore",
|
|
@@ -111,6 +111,7 @@ tests/unit/test_dbapi_connection.py
|
|
|
111
111
|
tests/unit/test_dbapi_cursor.py
|
|
112
112
|
tests/unit/test_dbapi_types.py
|
|
113
113
|
tests/unit/test_delete_dataset.py
|
|
114
|
+
tests/unit/test_docs.py
|
|
114
115
|
tests/unit/test_encryption_configuration.py
|
|
115
116
|
tests/unit/test_external_config.py
|
|
116
117
|
tests/unit/test_format_options.py
|
|
@@ -54,7 +54,7 @@ import google.cloud.bigquery.retry
|
|
|
54
54
|
import google.cloud.bigquery.table
|
|
55
55
|
from google.api_core import client_info
|
|
56
56
|
from google.cloud import bigquery
|
|
57
|
-
from google.cloud.bigquery import ParquetOptions, exceptions
|
|
57
|
+
from google.cloud.bigquery import ParquetOptions, exceptions, version
|
|
58
58
|
from google.cloud.bigquery.dataset import Dataset, DatasetReference
|
|
59
59
|
from google.cloud.bigquery.enums import DatasetView, TimestampPrecision, UpdateMode
|
|
60
60
|
from google.cloud.bigquery.retry import DEFAULT_TIMEOUT
|
|
@@ -840,6 +840,9 @@ class TestClient(unittest.TestCase):
|
|
|
840
840
|
self.assertIs(kwargs["client_options"], mock.sentinel.client_options)
|
|
841
841
|
self.assertIn("test-agent", kwargs["client_info"].user_agent)
|
|
842
842
|
self.assertIn("pandas-gbq", kwargs["client_info"].user_agent)
|
|
843
|
+
self.assertIn(
|
|
844
|
+
f"legacy-gcb/{version.__version__}", kwargs["client_info"].user_agent
|
|
845
|
+
)
|
|
843
846
|
|
|
844
847
|
def test_ensure_bqstorage_client_pandas_gbq_installed(self):
|
|
845
848
|
bigquery_storage = pytest.importorskip("google.cloud.bigquery_storage")
|
|
@@ -857,15 +860,17 @@ class TestClient(unittest.TestCase):
|
|
|
857
860
|
mock_pandas = mock.Mock()
|
|
858
861
|
mock_pandas.__version__ = "0.13.0"
|
|
859
862
|
|
|
860
|
-
with
|
|
861
|
-
"google.cloud.bigquery_storage.BigQueryReadClient", mock_client
|
|
862
|
-
|
|
863
|
+
with (
|
|
864
|
+
mock.patch("google.cloud.bigquery_storage.BigQueryReadClient", mock_client),
|
|
865
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": mock_pandas}),
|
|
866
|
+
):
|
|
863
867
|
client._ensure_bqstorage_client(client_info=client_info)
|
|
864
868
|
|
|
865
869
|
mock_client.assert_called_once()
|
|
866
870
|
_, kwargs = mock_client.call_args
|
|
867
871
|
self.assertEqual(
|
|
868
|
-
kwargs["client_info"].user_agent,
|
|
872
|
+
kwargs["client_info"].user_agent,
|
|
873
|
+
f"app-agent legacy-gcb/{version.__version__} pandas-gbq/0.13.0",
|
|
869
874
|
)
|
|
870
875
|
|
|
871
876
|
def test_ensure_bqstorage_client_pandas_gbq_not_installed(self):
|
|
@@ -881,14 +886,18 @@ class TestClient(unittest.TestCase):
|
|
|
881
886
|
user_agent="app-agent"
|
|
882
887
|
)
|
|
883
888
|
|
|
884
|
-
with
|
|
885
|
-
"google.cloud.bigquery_storage.BigQueryReadClient", mock_client
|
|
886
|
-
|
|
889
|
+
with (
|
|
890
|
+
mock.patch("google.cloud.bigquery_storage.BigQueryReadClient", mock_client),
|
|
891
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": None}),
|
|
892
|
+
):
|
|
887
893
|
client._ensure_bqstorage_client(client_info=client_info)
|
|
888
894
|
|
|
889
895
|
mock_client.assert_called_once()
|
|
890
896
|
_, kwargs = mock_client.call_args
|
|
891
|
-
self.assertEqual(
|
|
897
|
+
self.assertEqual(
|
|
898
|
+
kwargs["client_info"].user_agent,
|
|
899
|
+
f"app-agent legacy-gcb/{version.__version__} pandas-gbq/0.0.0",
|
|
900
|
+
)
|
|
892
901
|
|
|
893
902
|
def test_ensure_bqstorage_client_client_info_none(self):
|
|
894
903
|
bigquery_storage = pytest.importorskip("google.cloud.bigquery_storage")
|
|
@@ -898,14 +907,18 @@ class TestClient(unittest.TestCase):
|
|
|
898
907
|
creds = _make_credentials()
|
|
899
908
|
client = self._make_one(project=self.PROJECT, credentials=creds)
|
|
900
909
|
|
|
901
|
-
with
|
|
902
|
-
"google.cloud.bigquery_storage.BigQueryReadClient", mock_client
|
|
903
|
-
|
|
910
|
+
with (
|
|
911
|
+
mock.patch("google.cloud.bigquery_storage.BigQueryReadClient", mock_client),
|
|
912
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": None}),
|
|
913
|
+
):
|
|
904
914
|
client._ensure_bqstorage_client(client_info=None)
|
|
905
915
|
|
|
906
916
|
mock_client.assert_called_once()
|
|
907
917
|
_, kwargs = mock_client.call_args
|
|
908
|
-
self.assertEqual(
|
|
918
|
+
self.assertEqual(
|
|
919
|
+
kwargs["client_info"].user_agent,
|
|
920
|
+
f"legacy-gcb/{version.__version__} pandas-gbq/0.0.0",
|
|
921
|
+
)
|
|
909
922
|
|
|
910
923
|
def test_ensure_bqstorage_client_client_info_user_agent_none(self):
|
|
911
924
|
bigquery_storage = pytest.importorskip("google.cloud.bigquery_storage")
|
|
@@ -919,14 +932,18 @@ class TestClient(unittest.TestCase):
|
|
|
919
932
|
|
|
920
933
|
client_info = google.api_core.gapic_v1.client_info.ClientInfo(user_agent=None)
|
|
921
934
|
|
|
922
|
-
with
|
|
923
|
-
"google.cloud.bigquery_storage.BigQueryReadClient", mock_client
|
|
924
|
-
|
|
935
|
+
with (
|
|
936
|
+
mock.patch("google.cloud.bigquery_storage.BigQueryReadClient", mock_client),
|
|
937
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": None}),
|
|
938
|
+
):
|
|
925
939
|
client._ensure_bqstorage_client(client_info=client_info)
|
|
926
940
|
|
|
927
941
|
mock_client.assert_called_once()
|
|
928
942
|
_, kwargs = mock_client.call_args
|
|
929
|
-
self.assertEqual(
|
|
943
|
+
self.assertEqual(
|
|
944
|
+
kwargs["client_info"].user_agent,
|
|
945
|
+
f"legacy-gcb/{version.__version__} pandas-gbq/0.0.0",
|
|
946
|
+
)
|
|
930
947
|
|
|
931
948
|
def test_ensure_bqstorage_client_missing_dependency(self):
|
|
932
949
|
creds = _make_credentials()
|
|
@@ -9157,9 +9174,10 @@ class TestClientUpload(object):
|
|
|
9157
9174
|
SchemaField("unknown_col", "BYTES"),
|
|
9158
9175
|
)
|
|
9159
9176
|
job_config = job.LoadJobConfig(schema=schema)
|
|
9160
|
-
with
|
|
9161
|
-
|
|
9162
|
-
|
|
9177
|
+
with (
|
|
9178
|
+
load_patch as load_table_from_file,
|
|
9179
|
+
pytest.raises(ValueError) as exc_context,
|
|
9180
|
+
):
|
|
9163
9181
|
client.load_table_from_dataframe(
|
|
9164
9182
|
dataframe, self.TABLE_REF, job_config=job_config, location=self.LOCATION
|
|
9165
9183
|
)
|
|
@@ -9429,9 +9447,13 @@ class TestClientUpload(object):
|
|
|
9429
9447
|
get_table_patch = mock.patch(
|
|
9430
9448
|
"google.cloud.bigquery.client.Client.get_table", autospec=True
|
|
9431
9449
|
)
|
|
9432
|
-
with
|
|
9433
|
-
|
|
9434
|
-
|
|
9450
|
+
with (
|
|
9451
|
+
load_patch,
|
|
9452
|
+
get_table_patch,
|
|
9453
|
+
pytest.warns(
|
|
9454
|
+
PendingDeprecationWarning,
|
|
9455
|
+
match="Loading DataFrames via google-cloud-bigquery is deprecated",
|
|
9456
|
+
),
|
|
9435
9457
|
):
|
|
9436
9458
|
client.load_table_from_dataframe(dataframe, self.TABLE_REF)
|
|
9437
9459
|
|
|
@@ -9853,7 +9875,7 @@ class TestClientUpload(object):
|
|
|
9853
9875
|
|
|
9854
9876
|
client = self._make_client()
|
|
9855
9877
|
|
|
9856
|
-
emoji = "\
|
|
9878
|
+
emoji = "\U0001f3e6"
|
|
9857
9879
|
json_row = {"emoji": emoji}
|
|
9858
9880
|
json_rows = [json_row]
|
|
9859
9881
|
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Copyright 2026 Google LLC
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
import pathlib
|
|
16
|
+
import runpy
|
|
17
|
+
import sys
|
|
18
|
+
import types
|
|
19
|
+
from unittest import mock
|
|
20
|
+
|
|
21
|
+
import pytest
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def test_docs_conf_executes_successfully():
|
|
25
|
+
docs_dir = pathlib.Path(__file__).parent.parent.parent / "docs"
|
|
26
|
+
conf_path = docs_dir / "conf.py"
|
|
27
|
+
if not conf_path.exists():
|
|
28
|
+
pytest.skip("docs/conf.py not found")
|
|
29
|
+
|
|
30
|
+
res = runpy.run_path(str(conf_path))
|
|
31
|
+
|
|
32
|
+
assert res.get("project") == "google-cloud-bigquery"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@pytest.fixture
|
|
36
|
+
def fake_translator_and_mock():
|
|
37
|
+
docs_dir = pathlib.Path(__file__).parent.parent.parent / "docs"
|
|
38
|
+
conf_path = docs_dir / "conf.py"
|
|
39
|
+
if not conf_path.exists():
|
|
40
|
+
pytest.skip("docs/conf.py not found")
|
|
41
|
+
|
|
42
|
+
mock_orig_depart = mock.MagicMock(return_value="original_output")
|
|
43
|
+
|
|
44
|
+
class FakeTranslator:
|
|
45
|
+
depart_paragraph = mock_orig_depart
|
|
46
|
+
depart_compact_paragraph = mock_orig_depart
|
|
47
|
+
|
|
48
|
+
fake_module = types.ModuleType("sphinx_markdown_builder.markdown_writer")
|
|
49
|
+
fake_module.MarkdownTranslator = FakeTranslator
|
|
50
|
+
|
|
51
|
+
with mock.patch.dict(
|
|
52
|
+
sys.modules,
|
|
53
|
+
{
|
|
54
|
+
"sphinx_markdown_builder": types.ModuleType("sphinx_markdown_builder"),
|
|
55
|
+
"sphinx_markdown_builder.markdown_writer": fake_module,
|
|
56
|
+
},
|
|
57
|
+
):
|
|
58
|
+
runpy.run_path(str(conf_path))
|
|
59
|
+
|
|
60
|
+
return FakeTranslator, mock_orig_depart
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def test_depart_paragraph_suppresses_newlines_inside_table_cells(
|
|
64
|
+
fake_translator_and_mock,
|
|
65
|
+
):
|
|
66
|
+
FakeTranslator, mock_orig_depart = fake_translator_and_mock
|
|
67
|
+
translator = FakeTranslator()
|
|
68
|
+
translator.table_entries = ["cell"]
|
|
69
|
+
node = mock.MagicMock()
|
|
70
|
+
|
|
71
|
+
res_paragraph = FakeTranslator.depart_paragraph(translator, node)
|
|
72
|
+
res_compact = FakeTranslator.depart_compact_paragraph(translator, node)
|
|
73
|
+
|
|
74
|
+
assert res_paragraph is None
|
|
75
|
+
assert res_compact is None
|
|
76
|
+
mock_orig_depart.assert_not_called()
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def test_depart_paragraph_delegates_outside_table_cells(
|
|
80
|
+
fake_translator_and_mock,
|
|
81
|
+
):
|
|
82
|
+
FakeTranslator, mock_orig_depart = fake_translator_and_mock
|
|
83
|
+
translator = FakeTranslator()
|
|
84
|
+
node = mock.MagicMock()
|
|
85
|
+
|
|
86
|
+
res_paragraph = FakeTranslator.depart_paragraph(translator, node)
|
|
87
|
+
res_compact = FakeTranslator.depart_compact_paragraph(translator, node)
|
|
88
|
+
|
|
89
|
+
assert res_paragraph == "original_output"
|
|
90
|
+
assert res_compact == "original_output"
|
|
91
|
+
assert mock_orig_depart.call_count == 2
|
|
92
|
+
mock_orig_depart.assert_has_calls(
|
|
93
|
+
[
|
|
94
|
+
mock.call(translator, node),
|
|
95
|
+
mock.call(translator, node),
|
|
96
|
+
]
|
|
97
|
+
)
|