google-cloud-bigquery 3.45.1__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.1/google_cloud_bigquery.egg-info → google_cloud_bigquery-3.45.2}/PKG-INFO +1 -1
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/client.py +13 -3
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/version.py +1 -1
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2/google_cloud_bigquery.egg-info}/PKG-INFO +1 -1
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_client.py +46 -24
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_table.py +230 -10
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/LICENSE +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/MANIFEST.in +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/README.rst +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_http.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_job_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_pandas_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_pyarrow_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_string_references.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_tqdm_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_versions_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dataset.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/connection.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/cursor.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/exceptions.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/types.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/encryption_configuration.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/enums.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/exceptions.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/external_config.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/format_options.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/iam.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/base.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/copy_.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/extract.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/load.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/query.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/exceptions.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/lexer.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/parser.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/line_arg_parser/visitors.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/magics.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/model.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/opentelemetry_tracing.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/py.typed +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/query.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/routine/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/routine/routine.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/schema.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/standard_sql.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/table.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/encryption_config.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/model.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/model_reference.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/standard_sql.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery_v2/types/table_reference.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/SOURCES.txt +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/dependency_links.txt +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/requires.txt +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google_cloud_bigquery.egg-info/top_level.txt +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/pyproject.toml +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/setup.cfg +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/setup.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/characters.json +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/characters.jsonl +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/colors.avro +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/numeric_38_12.parquet +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/people.csv +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/pico.csv +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/pico_schema.json +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/scalars.csv +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/scalars.jsonl +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/scalars_extreme.jsonl +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/scalars_schema.json +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/scalars_schema_csv.json +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/schema.json +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/scrub_datasets.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/conftest.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_arrow.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_client.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_list_rows.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_magics.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_pandas.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_query.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_ssl_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_structs.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/test_cell_data_parser.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/test_data_frame_cell_data_parser.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/test_scalar_query_param_parser.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/conftest.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_async_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_base.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_copy.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_extract.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_load.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_load_config.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_config.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_pandas.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_stats.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/test_lexer.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/test_parser.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/line_arg_parser/test_visitors.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/model/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/model/test_model.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/model/test_model_reference.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/__init__.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_external_runtime_options.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_remote_function_options.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_routine.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_routine_argument.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_routine_reference.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__http.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__job_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__job_helpers_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__pandas_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__pyarrow_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__versions_helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_bigframes.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_resumable_media_upload.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_create_dataset.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dataset.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi__helpers.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_connection.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_cursor.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_types.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_delete_dataset.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_docs.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_encryption_configuration.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_external_config.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_format_options.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_job_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_legacy_types.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_datasets.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_jobs.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_models.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_projects.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_routines.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_tables.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_magics.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_opentelemetry_tracing.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_packaging.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_query.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_query_results_format_arrow.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_retry.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_schema.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_signature_compatibility.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_standard_sql_types.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_string_references.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_table_arrow.py +0 -0
- {google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_table_pandas.py +0 -0
{google_cloud_bigquery-3.45.1 → 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(
|
|
@@ -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
|
|
|
@@ -16,6 +16,7 @@ import copy
|
|
|
16
16
|
import datetime
|
|
17
17
|
import logging
|
|
18
18
|
import re
|
|
19
|
+
import sys
|
|
19
20
|
import time
|
|
20
21
|
import types
|
|
21
22
|
import unittest
|
|
@@ -376,9 +377,7 @@ class TestTableReference(unittest.TestCase):
|
|
|
376
377
|
def test___repr__(self):
|
|
377
378
|
dataset = DatasetReference("project1", "dataset1")
|
|
378
379
|
table1 = self._make_one(dataset, "table1")
|
|
379
|
-
expected = (
|
|
380
|
-
"TableReference(DatasetReference('project1', 'dataset1'), " "'table1')"
|
|
381
|
-
)
|
|
380
|
+
expected = "TableReference(DatasetReference('project1', 'dataset1'), 'table1')"
|
|
382
381
|
self.assertEqual(repr(table1), expected)
|
|
383
382
|
|
|
384
383
|
def test___str__(self):
|
|
@@ -1831,9 +1830,7 @@ class TestTable(unittest.TestCase, _SchemaBase):
|
|
|
1831
1830
|
dataset = DatasetReference("project1", "dataset1")
|
|
1832
1831
|
table1 = self._make_one(TableReference(dataset, "table1"))
|
|
1833
1832
|
expected = (
|
|
1834
|
-
"Table(TableReference("
|
|
1835
|
-
"DatasetReference('project1', 'dataset1'), "
|
|
1836
|
-
"'table1'))"
|
|
1833
|
+
"Table(TableReference(DatasetReference('project1', 'dataset1'), 'table1'))"
|
|
1837
1834
|
)
|
|
1838
1835
|
self.assertEqual(repr(table1), expected)
|
|
1839
1836
|
|
|
@@ -2893,7 +2890,8 @@ class TestRowIterator(unittest.TestCase):
|
|
|
2893
2890
|
|
|
2894
2891
|
def test__should_use_bqstorage_returns_false_if_page_token_set(self):
|
|
2895
2892
|
iterator = self._make_one(
|
|
2896
|
-
page_token="abc",
|
|
2893
|
+
page_token="abc",
|
|
2894
|
+
first_page_response=None, # not cached
|
|
2897
2895
|
)
|
|
2898
2896
|
result = iterator._should_use_bqstorage(
|
|
2899
2897
|
bqstorage_client=None, create_bqstorage_client=True
|
|
@@ -2902,7 +2900,8 @@ class TestRowIterator(unittest.TestCase):
|
|
|
2902
2900
|
|
|
2903
2901
|
def test__should_use_bqstorage_returns_false_if_max_results_set(self):
|
|
2904
2902
|
iterator = self._make_one(
|
|
2905
|
-
max_results=10,
|
|
2903
|
+
max_results=10,
|
|
2904
|
+
first_page_response=None, # not cached
|
|
2906
2905
|
)
|
|
2907
2906
|
result = iterator._should_use_bqstorage(
|
|
2908
2907
|
bqstorage_client=None, create_bqstorage_client=True
|
|
@@ -3548,6 +3547,117 @@ class TestRowIterator(unittest.TestCase):
|
|
|
3548
3547
|
mock_client._ensure_bqstorage_client.assert_called_once()
|
|
3549
3548
|
bqstorage_client._transport.close.assert_called_once()
|
|
3550
3549
|
|
|
3550
|
+
def test_to_arrow_create_read_session_user_agent(self):
|
|
3551
|
+
pytest.importorskip("numpy")
|
|
3552
|
+
pytest.importorskip("pyarrow")
|
|
3553
|
+
pytest.importorskip("google.cloud.bigquery_storage")
|
|
3554
|
+
import google.auth.credentials
|
|
3555
|
+
from google.cloud import bigquery_storage
|
|
3556
|
+
from google.cloud.bigquery import client as client_module
|
|
3557
|
+
from google.cloud.bigquery import schema, version
|
|
3558
|
+
from google.cloud.bigquery import table as mut
|
|
3559
|
+
from google.cloud.bigquery_storage_v1.services.big_query_read.transports import (
|
|
3560
|
+
grpc as big_query_read_grpc_transport,
|
|
3561
|
+
)
|
|
3562
|
+
|
|
3563
|
+
mock_channel = mock.MagicMock()
|
|
3564
|
+
mock_unary = mock.MagicMock()
|
|
3565
|
+
mock_channel.unary_unary.return_value = mock_unary
|
|
3566
|
+
mock_session = bigquery_storage.types.ReadSession(
|
|
3567
|
+
name="projects/proj/locations/us/sessions/s1",
|
|
3568
|
+
streams=[],
|
|
3569
|
+
)
|
|
3570
|
+
mock_unary.with_call.return_value = (mock_session, mock.MagicMock())
|
|
3571
|
+
|
|
3572
|
+
mock_pandas_gbq = mock.Mock()
|
|
3573
|
+
mock_pandas_gbq.__version__ = "0.13.0"
|
|
3574
|
+
|
|
3575
|
+
with (
|
|
3576
|
+
mock.patch.object(
|
|
3577
|
+
big_query_read_grpc_transport.BigQueryReadGrpcTransport,
|
|
3578
|
+
"create_channel",
|
|
3579
|
+
return_value=mock_channel,
|
|
3580
|
+
),
|
|
3581
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": mock_pandas_gbq}),
|
|
3582
|
+
):
|
|
3583
|
+
client = client_module.Client(
|
|
3584
|
+
project="proj",
|
|
3585
|
+
credentials=mock.Mock(spec=google.auth.credentials.Credentials),
|
|
3586
|
+
)
|
|
3587
|
+
row_iterator = mut.RowIterator(
|
|
3588
|
+
client,
|
|
3589
|
+
None, # api_request: ignored
|
|
3590
|
+
None, # path: ignored
|
|
3591
|
+
[schema.SchemaField("colA", "STRING")],
|
|
3592
|
+
table=mut.TableReference.from_string("proj.dset.tbl"),
|
|
3593
|
+
total_rows=0,
|
|
3594
|
+
)
|
|
3595
|
+
row_iterator.to_arrow(create_bqstorage_client=True)
|
|
3596
|
+
|
|
3597
|
+
mock_unary.with_call.assert_called_once()
|
|
3598
|
+
_, kwargs = mock_unary.with_call.call_args
|
|
3599
|
+
metadata_dict = dict(kwargs["metadata"])
|
|
3600
|
+
self.assertIn("x-goog-api-client", metadata_dict)
|
|
3601
|
+
user_agent = metadata_dict["x-goog-api-client"]
|
|
3602
|
+
self.assertIn(
|
|
3603
|
+
f"legacy-gcb/{version.__version__} pandas-gbq/0.13.0",
|
|
3604
|
+
user_agent,
|
|
3605
|
+
)
|
|
3606
|
+
|
|
3607
|
+
def test_to_arrow_create_read_session_user_agent_pandas_gbq_not_installed(self):
|
|
3608
|
+
pytest.importorskip("numpy")
|
|
3609
|
+
pytest.importorskip("pyarrow")
|
|
3610
|
+
pytest.importorskip("google.cloud.bigquery_storage")
|
|
3611
|
+
import google.auth.credentials
|
|
3612
|
+
from google.cloud import bigquery_storage
|
|
3613
|
+
from google.cloud.bigquery import client as client_module
|
|
3614
|
+
from google.cloud.bigquery import schema, version
|
|
3615
|
+
from google.cloud.bigquery import table as mut
|
|
3616
|
+
from google.cloud.bigquery_storage_v1.services.big_query_read.transports import (
|
|
3617
|
+
grpc as big_query_read_grpc_transport,
|
|
3618
|
+
)
|
|
3619
|
+
|
|
3620
|
+
mock_channel = mock.MagicMock()
|
|
3621
|
+
mock_unary = mock.MagicMock()
|
|
3622
|
+
mock_channel.unary_unary.return_value = mock_unary
|
|
3623
|
+
mock_session = bigquery_storage.types.ReadSession(
|
|
3624
|
+
name="projects/proj/locations/us/sessions/s1",
|
|
3625
|
+
streams=[],
|
|
3626
|
+
)
|
|
3627
|
+
mock_unary.with_call.return_value = (mock_session, mock.MagicMock())
|
|
3628
|
+
|
|
3629
|
+
with (
|
|
3630
|
+
mock.patch.object(
|
|
3631
|
+
big_query_read_grpc_transport.BigQueryReadGrpcTransport,
|
|
3632
|
+
"create_channel",
|
|
3633
|
+
return_value=mock_channel,
|
|
3634
|
+
),
|
|
3635
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": None}),
|
|
3636
|
+
):
|
|
3637
|
+
client = client_module.Client(
|
|
3638
|
+
project="proj",
|
|
3639
|
+
credentials=mock.Mock(spec=google.auth.credentials.Credentials),
|
|
3640
|
+
)
|
|
3641
|
+
row_iterator = mut.RowIterator(
|
|
3642
|
+
client,
|
|
3643
|
+
None, # api_request: ignored
|
|
3644
|
+
None, # path: ignored
|
|
3645
|
+
[schema.SchemaField("colA", "STRING")],
|
|
3646
|
+
table=mut.TableReference.from_string("proj.dset.tbl"),
|
|
3647
|
+
total_rows=0,
|
|
3648
|
+
)
|
|
3649
|
+
row_iterator.to_arrow(create_bqstorage_client=True)
|
|
3650
|
+
|
|
3651
|
+
mock_unary.with_call.assert_called_once()
|
|
3652
|
+
_, kwargs = mock_unary.with_call.call_args
|
|
3653
|
+
metadata_dict = dict(kwargs["metadata"])
|
|
3654
|
+
self.assertIn("x-goog-api-client", metadata_dict)
|
|
3655
|
+
user_agent = metadata_dict["x-goog-api-client"]
|
|
3656
|
+
self.assertIn(
|
|
3657
|
+
f"legacy-gcb/{version.__version__} pandas-gbq/0.0.0",
|
|
3658
|
+
user_agent,
|
|
3659
|
+
)
|
|
3660
|
+
|
|
3551
3661
|
def test_to_arrow_ensure_bqstorage_client_wo_bqstorage(self):
|
|
3552
3662
|
pytest.importorskip("numpy")
|
|
3553
3663
|
pyarrow = pytest.importorskip(
|
|
@@ -4903,6 +5013,117 @@ class TestRowIterator(unittest.TestCase):
|
|
|
4903
5013
|
mock_client._ensure_bqstorage_client.assert_called_once()
|
|
4904
5014
|
bqstorage_client._transport.close.assert_called_once()
|
|
4905
5015
|
|
|
5016
|
+
def test_to_dataframe_create_read_session_user_agent(self):
|
|
5017
|
+
pytest.importorskip("numpy")
|
|
5018
|
+
pytest.importorskip("pandas")
|
|
5019
|
+
pytest.importorskip("google.cloud.bigquery_storage")
|
|
5020
|
+
import google.auth.credentials
|
|
5021
|
+
from google.cloud import bigquery_storage
|
|
5022
|
+
from google.cloud.bigquery import client as client_module
|
|
5023
|
+
from google.cloud.bigquery import schema, version
|
|
5024
|
+
from google.cloud.bigquery import table as mut
|
|
5025
|
+
from google.cloud.bigquery_storage_v1.services.big_query_read.transports import (
|
|
5026
|
+
grpc as big_query_read_grpc_transport,
|
|
5027
|
+
)
|
|
5028
|
+
|
|
5029
|
+
mock_channel = mock.MagicMock()
|
|
5030
|
+
mock_unary = mock.MagicMock()
|
|
5031
|
+
mock_channel.unary_unary.return_value = mock_unary
|
|
5032
|
+
mock_session = bigquery_storage.types.ReadSession(
|
|
5033
|
+
name="projects/proj/locations/us/sessions/s1",
|
|
5034
|
+
streams=[],
|
|
5035
|
+
)
|
|
5036
|
+
mock_unary.with_call.return_value = (mock_session, mock.MagicMock())
|
|
5037
|
+
|
|
5038
|
+
mock_pandas_gbq = mock.Mock()
|
|
5039
|
+
mock_pandas_gbq.__version__ = "0.13.0"
|
|
5040
|
+
|
|
5041
|
+
with (
|
|
5042
|
+
mock.patch.object(
|
|
5043
|
+
big_query_read_grpc_transport.BigQueryReadGrpcTransport,
|
|
5044
|
+
"create_channel",
|
|
5045
|
+
return_value=mock_channel,
|
|
5046
|
+
),
|
|
5047
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": mock_pandas_gbq}),
|
|
5048
|
+
):
|
|
5049
|
+
client = client_module.Client(
|
|
5050
|
+
project="proj",
|
|
5051
|
+
credentials=mock.Mock(spec=google.auth.credentials.Credentials),
|
|
5052
|
+
)
|
|
5053
|
+
row_iterator = mut.RowIterator(
|
|
5054
|
+
client,
|
|
5055
|
+
None, # api_request: ignored
|
|
5056
|
+
None, # path: ignored
|
|
5057
|
+
[schema.SchemaField("colA", "STRING")],
|
|
5058
|
+
table=mut.TableReference.from_string("proj.dset.tbl"),
|
|
5059
|
+
total_rows=0,
|
|
5060
|
+
)
|
|
5061
|
+
row_iterator.to_dataframe(create_bqstorage_client=True)
|
|
5062
|
+
|
|
5063
|
+
mock_unary.with_call.assert_called_once()
|
|
5064
|
+
_, kwargs = mock_unary.with_call.call_args
|
|
5065
|
+
metadata_dict = dict(kwargs["metadata"])
|
|
5066
|
+
self.assertIn("x-goog-api-client", metadata_dict)
|
|
5067
|
+
user_agent = metadata_dict["x-goog-api-client"]
|
|
5068
|
+
self.assertIn(
|
|
5069
|
+
f"legacy-gcb/{version.__version__} pandas-gbq/0.13.0",
|
|
5070
|
+
user_agent,
|
|
5071
|
+
)
|
|
5072
|
+
|
|
5073
|
+
def test_to_dataframe_create_read_session_user_agent_pandas_gbq_not_installed(self):
|
|
5074
|
+
pytest.importorskip("numpy")
|
|
5075
|
+
pytest.importorskip("pandas")
|
|
5076
|
+
pytest.importorskip("google.cloud.bigquery_storage")
|
|
5077
|
+
import google.auth.credentials
|
|
5078
|
+
from google.cloud import bigquery_storage
|
|
5079
|
+
from google.cloud.bigquery import client as client_module
|
|
5080
|
+
from google.cloud.bigquery import schema, version
|
|
5081
|
+
from google.cloud.bigquery import table as mut
|
|
5082
|
+
from google.cloud.bigquery_storage_v1.services.big_query_read.transports import (
|
|
5083
|
+
grpc as big_query_read_grpc_transport,
|
|
5084
|
+
)
|
|
5085
|
+
|
|
5086
|
+
mock_channel = mock.MagicMock()
|
|
5087
|
+
mock_unary = mock.MagicMock()
|
|
5088
|
+
mock_channel.unary_unary.return_value = mock_unary
|
|
5089
|
+
mock_session = bigquery_storage.types.ReadSession(
|
|
5090
|
+
name="projects/proj/locations/us/sessions/s1",
|
|
5091
|
+
streams=[],
|
|
5092
|
+
)
|
|
5093
|
+
mock_unary.with_call.return_value = (mock_session, mock.MagicMock())
|
|
5094
|
+
|
|
5095
|
+
with (
|
|
5096
|
+
mock.patch.object(
|
|
5097
|
+
big_query_read_grpc_transport.BigQueryReadGrpcTransport,
|
|
5098
|
+
"create_channel",
|
|
5099
|
+
return_value=mock_channel,
|
|
5100
|
+
),
|
|
5101
|
+
mock.patch.dict(sys.modules, {"pandas_gbq": None}),
|
|
5102
|
+
):
|
|
5103
|
+
client = client_module.Client(
|
|
5104
|
+
project="proj",
|
|
5105
|
+
credentials=mock.Mock(spec=google.auth.credentials.Credentials),
|
|
5106
|
+
)
|
|
5107
|
+
row_iterator = mut.RowIterator(
|
|
5108
|
+
client,
|
|
5109
|
+
None, # api_request: ignored
|
|
5110
|
+
None, # path: ignored
|
|
5111
|
+
[schema.SchemaField("colA", "STRING")],
|
|
5112
|
+
table=mut.TableReference.from_string("proj.dset.tbl"),
|
|
5113
|
+
total_rows=0,
|
|
5114
|
+
)
|
|
5115
|
+
row_iterator.to_dataframe(create_bqstorage_client=True)
|
|
5116
|
+
|
|
5117
|
+
mock_unary.with_call.assert_called_once()
|
|
5118
|
+
_, kwargs = mock_unary.with_call.call_args
|
|
5119
|
+
metadata_dict = dict(kwargs["metadata"])
|
|
5120
|
+
self.assertIn("x-goog-api-client", metadata_dict)
|
|
5121
|
+
user_agent = metadata_dict["x-goog-api-client"]
|
|
5122
|
+
self.assertIn(
|
|
5123
|
+
f"legacy-gcb/{version.__version__} pandas-gbq/0.0.0",
|
|
5124
|
+
user_agent,
|
|
5125
|
+
)
|
|
5126
|
+
|
|
4906
5127
|
def test_to_dataframe_w_bqstorage_no_streams(self):
|
|
4907
5128
|
pytest.importorskip("numpy")
|
|
4908
5129
|
pytest.importorskip("pandas")
|
|
@@ -5622,8 +5843,7 @@ class TestRowIterator(unittest.TestCase):
|
|
|
5622
5843
|
with self.assertRaisesRegex(
|
|
5623
5844
|
TypeError,
|
|
5624
5845
|
re.escape(
|
|
5625
|
-
"There must be at least one GEOGRAPHY column"
|
|
5626
|
-
" to create a GeoDataFrame"
|
|
5846
|
+
"There must be at least one GEOGRAPHY column to create a GeoDataFrame"
|
|
5627
5847
|
),
|
|
5628
5848
|
):
|
|
5629
5849
|
row_iterator.to_geodataframe(create_bqstorage_client=False)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/__init__.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_helpers.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_http.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_job_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/_tqdm_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/cursor.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/dbapi/types.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/enums.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/__init__.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/base.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/copy_.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/extract.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/job/load.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/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.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/magics/magics.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/model.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/py.typed
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/query.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/retry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/schema.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/standard_sql.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/google/cloud/bigquery/table.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/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.45.1 → google_cloud_bigquery-3.45.2}/tests/data/numeric_38_12.parquet
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/scalars_extreme.jsonl
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/data/scalars_schema.json
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/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.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_job_retry.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_list_rows.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/system/test_ssl_retry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/_helpers/__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
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_async_job_retry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_load_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_config.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_job_retry.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_pandas.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/job/test_query_stats.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/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.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/model/test_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/routine/test_routine.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__job_helpers.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__job_helpers_retry.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__pandas_helpers.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__pyarrow_helpers.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test__versions_helpers.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_bigframes.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_client_retry.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_create_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi__helpers.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_connection.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_cursor.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_dbapi_types.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_delete_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_external_config.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_format_options.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_legacy_types.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_datasets.py
RENAMED
|
File without changes
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_models.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_projects.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_list_routines.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/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
|
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_standard_sql_types.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_string_references.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_table_arrow.py
RENAMED
|
File without changes
|
{google_cloud_bigquery-3.45.1 → google_cloud_bigquery-3.45.2}/tests/unit/test_table_pandas.py
RENAMED
|
File without changes
|