google-cloud-bigquery 3.25.0__tar.gz → 3.26.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/MANIFEST.in +1 -1
  2. {google-cloud-bigquery-3.25.0/google_cloud_bigquery.egg-info → google_cloud_bigquery-3.26.0}/PKG-INFO +11 -13
  3. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/__init__.py +32 -4
  4. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/_helpers.py +28 -10
  5. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/_pandas_helpers.py +4 -2
  6. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/_versions_helpers.py +14 -0
  7. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/job/base.py +6 -3
  8. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/job/query.py +5 -0
  9. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/magics/magics.py +17 -64
  10. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/query.py +9 -11
  11. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/version.py +1 -1
  12. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0/google_cloud_bigquery.egg-info}/PKG-INFO +11 -13
  13. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google_cloud_bigquery.egg-info/requires.txt +10 -11
  14. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/setup.py +7 -14
  15. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_magics.py +4 -1
  16. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_base.py +18 -0
  17. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test__helpers.py +61 -1
  18. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test__pandas_helpers.py +17 -0
  19. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_job_retry.py +1 -1
  20. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_magics.py +179 -112
  21. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_query.py +19 -0
  22. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_table.py +3 -3
  23. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/LICENSE +0 -0
  24. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/README.rst +0 -0
  25. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/_http.py +0 -0
  26. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/_job_helpers.py +0 -0
  27. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/_pyarrow_helpers.py +0 -0
  28. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/_tqdm_helpers.py +0 -0
  29. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/client.py +0 -0
  30. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/dataset.py +0 -0
  31. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/dbapi/__init__.py +0 -0
  32. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/dbapi/_helpers.py +0 -0
  33. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/dbapi/connection.py +0 -0
  34. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/dbapi/cursor.py +0 -0
  35. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/dbapi/exceptions.py +0 -0
  36. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/dbapi/types.py +0 -0
  37. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/encryption_configuration.py +0 -0
  38. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/enums.py +0 -0
  39. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/exceptions.py +0 -0
  40. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/external_config.py +0 -0
  41. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/format_options.py +0 -0
  42. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/iam.py +0 -0
  43. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/job/__init__.py +0 -0
  44. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/job/copy_.py +0 -0
  45. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/job/extract.py +0 -0
  46. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/job/load.py +0 -0
  47. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/magics/__init__.py +0 -0
  48. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/magics/line_arg_parser/__init__.py +0 -0
  49. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/magics/line_arg_parser/exceptions.py +0 -0
  50. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/magics/line_arg_parser/lexer.py +0 -0
  51. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/magics/line_arg_parser/parser.py +0 -0
  52. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/magics/line_arg_parser/visitors.py +0 -0
  53. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/model.py +0 -0
  54. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/opentelemetry_tracing.py +0 -0
  55. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/py.typed +0 -0
  56. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/retry.py +0 -0
  57. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/routine/__init__.py +0 -0
  58. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/routine/routine.py +0 -0
  59. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/schema.py +0 -0
  60. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/standard_sql.py +0 -0
  61. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery/table.py +0 -0
  62. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery_v2/__init__.py +0 -0
  63. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery_v2/types/__init__.py +0 -0
  64. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery_v2/types/encryption_config.py +0 -0
  65. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery_v2/types/model.py +0 -0
  66. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery_v2/types/model_reference.py +0 -0
  67. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery_v2/types/standard_sql.py +0 -0
  68. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google/cloud/bigquery_v2/types/table_reference.py +0 -0
  69. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google_cloud_bigquery.egg-info/SOURCES.txt +0 -0
  70. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google_cloud_bigquery.egg-info/dependency_links.txt +0 -0
  71. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google_cloud_bigquery.egg-info/not-zip-safe +0 -0
  72. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/google_cloud_bigquery.egg-info/top_level.txt +0 -0
  73. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/setup.cfg +0 -0
  74. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/__init__.py +0 -0
  75. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/characters.json +0 -0
  76. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/characters.jsonl +0 -0
  77. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/colors.avro +0 -0
  78. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/numeric_38_12.parquet +0 -0
  79. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/people.csv +0 -0
  80. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/scalars.csv +0 -0
  81. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/scalars.jsonl +0 -0
  82. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/scalars_extreme.jsonl +0 -0
  83. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/scalars_schema.json +0 -0
  84. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/scalars_schema_csv.json +0 -0
  85. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/data/schema.json +0 -0
  86. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/scrub_datasets.py +0 -0
  87. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/__init__.py +0 -0
  88. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/conftest.py +0 -0
  89. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/helpers.py +0 -0
  90. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_arrow.py +0 -0
  91. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_client.py +0 -0
  92. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_job_retry.py +0 -0
  93. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_list_rows.py +0 -0
  94. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_pandas.py +0 -0
  95. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_query.py +0 -0
  96. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/system/test_structs.py +0 -0
  97. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/__init__.py +0 -0
  98. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/_helpers/__init__.py +0 -0
  99. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/_helpers/test_from_json.py +0 -0
  100. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/conftest.py +0 -0
  101. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/helpers.py +0 -0
  102. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/__init__.py +0 -0
  103. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/helpers.py +0 -0
  104. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_copy.py +0 -0
  105. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_extract.py +0 -0
  106. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_load.py +0 -0
  107. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_load_config.py +0 -0
  108. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_query.py +0 -0
  109. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_query_config.py +0 -0
  110. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_query_pandas.py +0 -0
  111. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/job/test_query_stats.py +0 -0
  112. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/line_arg_parser/__init__.py +0 -0
  113. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/line_arg_parser/test_lexer.py +0 -0
  114. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/line_arg_parser/test_parser.py +0 -0
  115. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/line_arg_parser/test_visitors.py +0 -0
  116. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/model/__init__.py +0 -0
  117. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/model/test_model.py +0 -0
  118. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/model/test_model_reference.py +0 -0
  119. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/routine/__init__.py +0 -0
  120. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/routine/test_remote_function_options.py +0 -0
  121. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/routine/test_routine.py +0 -0
  122. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/routine/test_routine_argument.py +0 -0
  123. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/routine/test_routine_reference.py +0 -0
  124. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test__http.py +0 -0
  125. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test__job_helpers.py +0 -0
  126. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test__pyarrow_helpers.py +0 -0
  127. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test__versions_helpers.py +0 -0
  128. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_client.py +0 -0
  129. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_create_dataset.py +0 -0
  130. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_dataset.py +0 -0
  131. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_dbapi__helpers.py +0 -0
  132. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_dbapi_connection.py +0 -0
  133. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_dbapi_cursor.py +0 -0
  134. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_dbapi_types.py +0 -0
  135. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_delete_dataset.py +0 -0
  136. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_encryption_configuration.py +0 -0
  137. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_external_config.py +0 -0
  138. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_format_options.py +0 -0
  139. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_legacy_types.py +0 -0
  140. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_list_datasets.py +0 -0
  141. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_list_jobs.py +0 -0
  142. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_list_models.py +0 -0
  143. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_list_projects.py +0 -0
  144. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_list_routines.py +0 -0
  145. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_list_tables.py +0 -0
  146. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_opentelemetry_tracing.py +0 -0
  147. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_packaging.py +0 -0
  148. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_retry.py +0 -0
  149. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_schema.py +0 -0
  150. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_signature_compatibility.py +0 -0
  151. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_standard_sql_types.py +0 -0
  152. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_table_arrow.py +0 -0
  153. {google-cloud-bigquery-3.25.0 → google_cloud_bigquery-3.26.0}/tests/unit/test_table_pandas.py +0 -0
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright 2023 Google LLC
3
+ # Copyright 2024 Google LLC
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: google-cloud-bigquery
3
- Version: 3.25.0
3
+ Version: 3.26.0
4
4
  Summary: Google BigQuery API client library
5
5
  Home-page: https://github.com/googleapis/python-bigquery
6
6
  Author: Google LLC
@@ -22,12 +22,12 @@ Classifier: Operating System :: OS Independent
22
22
  Classifier: Topic :: Internet
23
23
  Requires-Python: >=3.7
24
24
  License-File: LICENSE
25
- Requires-Dist: google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.1
25
+ Requires-Dist: google-api-core[grpc]<3.0.0dev,>=2.11.1
26
26
  Requires-Dist: google-auth<3.0.0dev,>=2.14.1
27
- Requires-Dist: google-cloud-core<3.0.0dev,>=1.6.0
28
- Requires-Dist: google-resumable-media<3.0dev,>=0.6.0
27
+ Requires-Dist: google-cloud-core<3.0.0dev,>=2.4.1
28
+ Requires-Dist: google-resumable-media<3.0dev,>=2.0.0
29
29
  Requires-Dist: packaging>=20.0.0
30
- Requires-Dist: python-dateutil<3.0dev,>=2.7.2
30
+ Requires-Dist: python-dateutil<3.0dev,>=2.7.3
31
31
  Requires-Dist: requests<3.0.0dev,>=2.21.0
32
32
  Provides-Extra: bqstorage
33
33
  Requires-Dist: google-cloud-bigquery-storage<3.0.0dev,>=2.6.0; extra == "bqstorage"
@@ -46,8 +46,7 @@ Provides-Extra: geopandas
46
46
  Requires-Dist: geopandas<1.0dev,>=0.9.0; extra == "geopandas"
47
47
  Requires-Dist: Shapely<3.0.0dev,>=1.8.4; extra == "geopandas"
48
48
  Provides-Extra: ipython
49
- Requires-Dist: ipython!=8.1.0,>=7.23.1; extra == "ipython"
50
- Requires-Dist: ipykernel>=6.0.0; extra == "ipython"
49
+ Requires-Dist: bigquery-magics>=0.1.0; extra == "ipython"
51
50
  Provides-Extra: tqdm
52
51
  Requires-Dist: tqdm<5.0.0dev,>=4.7.4; extra == "tqdm"
53
52
  Provides-Extra: opentelemetry
@@ -55,8 +54,8 @@ Requires-Dist: opentelemetry-api>=1.1.0; extra == "opentelemetry"
55
54
  Requires-Dist: opentelemetry-sdk>=1.1.0; extra == "opentelemetry"
56
55
  Requires-Dist: opentelemetry-instrumentation>=0.20b0; extra == "opentelemetry"
57
56
  Provides-Extra: bigquery-v2
58
- Requires-Dist: proto-plus<2.0.0dev,>=1.15.0; extra == "bigquery-v2"
59
- Requires-Dist: protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5; extra == "bigquery-v2"
57
+ Requires-Dist: proto-plus<2.0.0dev,>=1.22.3; extra == "bigquery-v2"
58
+ Requires-Dist: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2; extra == "bigquery-v2"
60
59
  Provides-Extra: all
61
60
  Requires-Dist: google-cloud-bigquery-storage<3.0.0dev,>=2.6.0; extra == "all"
62
61
  Requires-Dist: grpcio<2.0dev,>=1.47.0; extra == "all"
@@ -70,14 +69,13 @@ Requires-Dist: ipywidgets>=7.7.0; extra == "all"
70
69
  Requires-Dist: ipykernel>=6.0.0; extra == "all"
71
70
  Requires-Dist: geopandas<1.0dev,>=0.9.0; extra == "all"
72
71
  Requires-Dist: Shapely<3.0.0dev,>=1.8.4; extra == "all"
73
- Requires-Dist: ipython!=8.1.0,>=7.23.1; extra == "all"
74
- Requires-Dist: ipykernel>=6.0.0; extra == "all"
72
+ Requires-Dist: bigquery-magics>=0.1.0; extra == "all"
75
73
  Requires-Dist: tqdm<5.0.0dev,>=4.7.4; extra == "all"
76
74
  Requires-Dist: opentelemetry-api>=1.1.0; extra == "all"
77
75
  Requires-Dist: opentelemetry-sdk>=1.1.0; extra == "all"
78
76
  Requires-Dist: opentelemetry-instrumentation>=0.20b0; extra == "all"
79
- Requires-Dist: proto-plus<2.0.0dev,>=1.15.0; extra == "all"
80
- Requires-Dist: protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5; extra == "all"
77
+ Requires-Dist: proto-plus<2.0.0dev,>=1.22.3; extra == "all"
78
+ Requires-Dist: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2; extra == "all"
81
79
 
82
80
  Python Client for Google BigQuery
83
81
  =================================
@@ -27,6 +27,7 @@ The main concepts with this API are:
27
27
  - :class:`~google.cloud.bigquery.table.Table` represents a single "relation".
28
28
  """
29
29
 
30
+ import warnings
30
31
 
31
32
  from google.cloud.bigquery import version as bigquery_version
32
33
 
@@ -43,6 +44,7 @@ from google.cloud.bigquery.enums import KeyResultStatementKind
43
44
  from google.cloud.bigquery.enums import SqlTypeNames
44
45
  from google.cloud.bigquery.enums import StandardSqlTypeNames
45
46
  from google.cloud.bigquery.exceptions import LegacyBigQueryStorageError
47
+ from google.cloud.bigquery.exceptions import LegacyPandasError
46
48
  from google.cloud.bigquery.exceptions import LegacyPyarrowError
47
49
  from google.cloud.bigquery.external_config import ExternalConfig
48
50
  from google.cloud.bigquery.external_config import BigtableOptions
@@ -113,6 +115,24 @@ from google.cloud.bigquery.table import TableReference
113
115
  from google.cloud.bigquery.table import TimePartitioningType
114
116
  from google.cloud.bigquery.table import TimePartitioning
115
117
  from google.cloud.bigquery.encryption_configuration import EncryptionConfiguration
118
+ from google.cloud.bigquery import _versions_helpers
119
+
120
+ try:
121
+ import bigquery_magics # type: ignore
122
+ except ImportError:
123
+ bigquery_magics = None
124
+
125
+ sys_major, sys_minor, sys_micro = _versions_helpers.extract_runtime_version()
126
+
127
+ if sys_major == 3 and sys_minor in (7, 8):
128
+ warnings.warn(
129
+ "The python-bigquery library will stop supporting Python 3.7 "
130
+ "and Python 3.8 in a future major release expected in Q4 2024. "
131
+ f"Your Python version is {sys_major}.{sys_minor}.{sys_micro}. We "
132
+ "recommend that you update soon to ensure ongoing support. For "
133
+ "more details, see: [Google Cloud Client Libraries Supported Python Versions policy](https://cloud.google.com/python/docs/supported-python-versions)",
134
+ PendingDeprecationWarning,
135
+ )
116
136
 
117
137
  __all__ = [
118
138
  "__version__",
@@ -214,8 +234,16 @@ __all__ = [
214
234
 
215
235
  def load_ipython_extension(ipython):
216
236
  """Called by IPython when this module is loaded as an IPython extension."""
217
- from google.cloud.bigquery.magics.magics import _cell_magic
218
-
219
- ipython.register_magic_function(
220
- _cell_magic, magic_kind="cell", magic_name="bigquery"
237
+ warnings.warn(
238
+ "%load_ext google.cloud.bigquery is deprecated. Install bigquery-magics package and use `%load_ext bigquery_magics`, instead.",
239
+ category=FutureWarning,
221
240
  )
241
+
242
+ if bigquery_magics is not None:
243
+ bigquery_magics.load_ipython_extension(ipython)
244
+ else:
245
+ from google.cloud.bigquery.magics.magics import _cell_magic
246
+
247
+ ipython.register_magic_function(
248
+ _cell_magic, magic_kind="cell", magic_name="bigquery"
249
+ )
@@ -21,6 +21,7 @@ import json
21
21
  import math
22
22
  import re
23
23
  import os
24
+ import warnings
24
25
  from typing import Optional, Union
25
26
 
26
27
  from dateutil import relativedelta
@@ -297,12 +298,7 @@ def _record_from_json(value, field):
297
298
  record = {}
298
299
  record_iter = zip(field.fields, value["f"])
299
300
  for subfield, cell in record_iter:
300
- converter = _CELLDATA_FROM_JSON[subfield.field_type]
301
- if subfield.mode == "REPEATED":
302
- value = [converter(item["v"], subfield) for item in cell["v"]]
303
- else:
304
- value = converter(cell["v"], subfield)
305
- record[subfield.name] = value
301
+ record[subfield.name] = _field_from_json(cell["v"], subfield)
306
302
  return record
307
303
 
308
304
 
@@ -382,7 +378,11 @@ def _field_to_index_mapping(schema):
382
378
 
383
379
 
384
380
  def _field_from_json(resource, field):
385
- converter = _CELLDATA_FROM_JSON.get(field.field_type, lambda value, _: value)
381
+ def default_converter(value, field):
382
+ _warn_unknown_field_type(field)
383
+ return value
384
+
385
+ converter = _CELLDATA_FROM_JSON.get(field.field_type, default_converter)
386
386
  if field.mode == "REPEATED":
387
387
  return [converter(item["v"], field) for item in resource]
388
388
  else:
@@ -484,6 +484,11 @@ def _json_to_json(value):
484
484
  return json.dumps(value)
485
485
 
486
486
 
487
+ def _string_to_json(value):
488
+ """NOOP string -> string coercion"""
489
+ return value
490
+
491
+
487
492
  def _timestamp_to_json_parameter(value):
488
493
  """Coerce 'value' to an JSON-compatible representation.
489
494
 
@@ -596,6 +601,7 @@ _SCALAR_VALUE_TO_JSON_ROW = {
596
601
  "DATE": _date_to_json,
597
602
  "TIME": _time_to_json,
598
603
  "JSON": _json_to_json,
604
+ "STRING": _string_to_json,
599
605
  # Make sure DECIMAL and BIGDECIMAL are handled, even though
600
606
  # requests for them should be converted to NUMERIC. Better safe
601
607
  # than sorry.
@@ -609,6 +615,15 @@ _SCALAR_VALUE_TO_JSON_PARAM = _SCALAR_VALUE_TO_JSON_ROW.copy()
609
615
  _SCALAR_VALUE_TO_JSON_PARAM["TIMESTAMP"] = _timestamp_to_json_parameter
610
616
 
611
617
 
618
+ def _warn_unknown_field_type(field):
619
+ warnings.warn(
620
+ "Unknown type '{}' for field '{}'. Behavior reading and writing this type is not officially supported and may change in the future.".format(
621
+ field.field_type, field.name
622
+ ),
623
+ FutureWarning,
624
+ )
625
+
626
+
612
627
  def _scalar_field_to_json(field, row_value):
613
628
  """Maps a field and value to a JSON-safe value.
614
629
 
@@ -621,9 +636,12 @@ def _scalar_field_to_json(field, row_value):
621
636
  Returns:
622
637
  Any: A JSON-serializable object.
623
638
  """
624
- converter = _SCALAR_VALUE_TO_JSON_ROW.get(field.field_type)
625
- if converter is None: # STRING doesn't need converting
626
- return row_value
639
+
640
+ def default_converter(value):
641
+ _warn_unknown_field_type(field)
642
+ return value
643
+
644
+ converter = _SCALAR_VALUE_TO_JSON_ROW.get(field.field_type, default_converter)
627
645
  return converter(row_value)
628
646
 
629
647
 
@@ -200,11 +200,13 @@ def bq_to_arrow_field(bq_field, array_type=None):
200
200
  # local NULL values. Arrow will gladly interpret these NULL values
201
201
  # as non-NULL and give you an arbitrary value. See:
202
202
  # https://github.com/googleapis/python-bigquery/issues/1692
203
- nullable=True,
203
+ nullable=False if bq_field.mode.upper() == "REPEATED" else True,
204
204
  metadata=metadata,
205
205
  )
206
206
 
207
- warnings.warn("Unable to determine type for field '{}'.".format(bq_field.name))
207
+ warnings.warn(
208
+ "Unable to determine Arrow type for field '{}'.".format(bq_field.name)
209
+ )
208
210
  return None
209
211
 
210
212
 
@@ -14,6 +14,7 @@
14
14
 
15
15
  """Shared helper functions for verifying versions of installed modules."""
16
16
 
17
+ import sys
17
18
  from typing import Any
18
19
 
19
20
  import packaging.version
@@ -248,3 +249,16 @@ SUPPORTS_RANGE_PYARROW = (
248
249
  and PYARROW_VERSIONS.try_import() is not None
249
250
  and PYARROW_VERSIONS.installed_version >= _MIN_PYARROW_VERSION_RANGE
250
251
  )
252
+
253
+
254
+ def extract_runtime_version():
255
+ # Retrieve the version information
256
+ version_info = sys.version_info
257
+
258
+ # Extract the major, minor, and micro components
259
+ major = version_info.major
260
+ minor = version_info.minor
261
+ micro = version_info.micro
262
+
263
+ # Display the version number in a clear format
264
+ return major, minor, micro
@@ -49,7 +49,7 @@ _ERROR_REASON_TO_EXCEPTION = {
49
49
  "notImplemented": http.client.NOT_IMPLEMENTED,
50
50
  "policyViolation": http.client.FORBIDDEN,
51
51
  "quotaExceeded": http.client.FORBIDDEN,
52
- "rateLimitExceeded": http.client.FORBIDDEN,
52
+ "rateLimitExceeded": http.client.TOO_MANY_REQUESTS,
53
53
  "resourceInUse": http.client.BAD_REQUEST,
54
54
  "resourcesExceeded": http.client.BAD_REQUEST,
55
55
  "responseTooLarge": http.client.FORBIDDEN,
@@ -218,8 +218,11 @@ class _JobConfig(object):
218
218
  err.__traceback__
219
219
  )
220
220
 
221
- """ Docs indicate a string is expected by the API """
222
- self._properties["jobTimeoutMs"] = str(value)
221
+ if value is not None:
222
+ # docs indicate a string is expected by the API
223
+ self._properties["jobTimeoutMs"] = str(value)
224
+ else:
225
+ self._properties.pop("jobTimeoutMs", None)
223
226
 
224
227
  @property
225
228
  def labels(self):
@@ -476,6 +476,11 @@ class QueryJobConfig(_JobConfig):
476
476
  ID, each separated by ``.``. For example:
477
477
  ``your-project.your_dataset.your_table``.
478
478
 
479
+ .. note::
480
+
481
+ Only table ID is passed to the backend, so any configuration
482
+ in `~google.cloud.bigquery.table.Table` is discarded.
483
+
479
484
  See
480
485
  https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#JobConfigurationQuery.FIELDS.destination_table
481
486
  """
@@ -14,70 +14,11 @@
14
14
 
15
15
  """IPython Magics
16
16
 
17
- .. function:: %%bigquery
18
-
19
- IPython cell magic to run a query and display the result as a DataFrame
20
-
21
- .. code-block:: python
22
-
23
- %%bigquery [<destination_var>] [--project <project>] [--use_legacy_sql]
24
- [--verbose] [--params <params>]
25
- <query>
26
-
27
- Parameters:
28
-
29
- * ``<destination_var>`` (Optional[line argument]):
30
- variable to store the query results. The results are not displayed if
31
- this parameter is used. If an error occurs during the query execution,
32
- the corresponding ``QueryJob`` instance (if available) is stored in
33
- the variable instead.
34
- * ``--destination_table`` (Optional[line argument]):
35
- A dataset and table to store the query results. If table does not exists,
36
- it will be created. If table already exists, its data will be overwritten.
37
- Variable should be in a format <dataset_id>.<table_id>.
38
- * ``--no_query_cache`` (Optional[line argument]):
39
- Do not use cached query results.
40
- * ``--project <project>`` (Optional[line argument]):
41
- Project to use for running the query. Defaults to the context
42
- :attr:`~google.cloud.bigquery.magics.Context.project`.
43
- * ``--use_bqstorage_api`` (Optional[line argument]):
44
- [Deprecated] Not used anymore, as BigQuery Storage API is used by default.
45
- * ``--use_rest_api`` (Optional[line argument]):
46
- Use the BigQuery REST API instead of the Storage API.
47
- * ``--use_legacy_sql`` (Optional[line argument]):
48
- Runs the query using Legacy SQL syntax. Defaults to Standard SQL if
49
- this argument not used.
50
- * ``--verbose`` (Optional[line argument]):
51
- If this flag is used, information including the query job ID and the
52
- amount of time for the query to complete will not be cleared after the
53
- query is finished. By default, this information will be displayed but
54
- will be cleared after the query is finished.
55
- * ``--params <params>`` (Optional[line argument]):
56
- If present, the argument following the ``--params`` flag must be
57
- either:
58
-
59
- * :class:`str` - A JSON string representation of a dictionary in the
60
- format ``{"param_name": "param_value"}`` (ex. ``{"num": 17}``). Use
61
- of the parameter in the query should be indicated with
62
- ``@param_name``. See ``In[5]`` in the Examples section below.
63
-
64
- * :class:`dict` reference - A reference to a ``dict`` in the format
65
- ``{"param_name": "param_value"}``, where the value types must be JSON
66
- serializable. The variable reference is indicated by a ``$`` before
67
- the variable name (ex. ``$my_dict_var``). See ``In[6]`` and ``In[7]``
68
- in the Examples section below.
69
-
70
- * ``<query>`` (required, cell argument):
71
- SQL query to run. If the query does not contain any whitespace (aside
72
- from leading and trailing whitespace), it is assumed to represent a
73
- fully-qualified table ID, and the latter's data will be fetched.
17
+ Install ``bigquery-magics`` and call ``%load_ext bigquery_magics`` to use the
18
+ ``%%bigquery`` cell magic.
74
19
 
75
- Returns:
76
- A :class:`pandas.DataFrame` with the query results.
77
-
78
- .. note::
79
- All queries run using this magic will run using the context
80
- :attr:`~google.cloud.bigquery.magics.Context.credentials`.
20
+ See the `BigQuery Magics reference documentation
21
+ <https://googleapis.dev/python/bigquery-magics/latest/>`_.
81
22
  """
82
23
 
83
24
  from __future__ import print_function
@@ -109,6 +50,11 @@ from google.cloud.bigquery import exceptions
109
50
  from google.cloud.bigquery.dbapi import _helpers
110
51
  from google.cloud.bigquery.magics import line_arg_parser as lap
111
52
 
53
+ try:
54
+ import bigquery_magics # type: ignore
55
+ except ImportError:
56
+ bigquery_magics = None
57
+
112
58
 
113
59
  IPYTHON_USER_AGENT = "ipython-{}".format(IPython.__version__)
114
60
 
@@ -280,7 +226,14 @@ class Context(object):
280
226
  self._progress_bar_type = value
281
227
 
282
228
 
283
- context = Context()
229
+ # If bigquery_magics is available, we load that extension rather than this one.
230
+ # Ensure google.cloud.bigquery.magics.context setters are on the correct magics
231
+ # implementation in case the user has installed the package but hasn't updated
232
+ # their code.
233
+ if bigquery_magics is not None:
234
+ context = bigquery_magics.context
235
+ else:
236
+ context = Context()
284
237
 
285
238
 
286
239
  def _handle_error(error, destination_var=None):
@@ -591,9 +591,8 @@ class ScalarQueryParameter(_AbstractQueryParameter):
591
591
  Dict: JSON mapping
592
592
  """
593
593
  value = self.value
594
- converter = _SCALAR_VALUE_TO_JSON_PARAM.get(self.type_)
595
- if converter is not None:
596
- value = converter(value) # type: ignore
594
+ converter = _SCALAR_VALUE_TO_JSON_PARAM.get(self.type_, lambda value: value)
595
+ value = converter(value) # type: ignore
597
596
  resource: Dict[str, Any] = {
598
597
  "parameterType": {"type": self.type_},
599
598
  "parameterValue": {"value": value},
@@ -748,9 +747,10 @@ class ArrayQueryParameter(_AbstractQueryParameter):
748
747
  else:
749
748
  a_type = self.array_type.to_api_repr()
750
749
 
751
- converter = _SCALAR_VALUE_TO_JSON_PARAM.get(a_type["type"])
752
- if converter is not None:
753
- values = [converter(value) for value in values] # type: ignore
750
+ converter = _SCALAR_VALUE_TO_JSON_PARAM.get(
751
+ a_type["type"], lambda value: value
752
+ )
753
+ values = [converter(value) for value in values] # type: ignore
754
754
  a_values = [{"value": value} for value in values]
755
755
 
756
756
  resource = {
@@ -792,7 +792,7 @@ class ArrayQueryParameter(_AbstractQueryParameter):
792
792
 
793
793
 
794
794
  class StructQueryParameter(_AbstractQueryParameter):
795
- """Named / positional query parameters for struct values.
795
+ """Name / positional query parameters for struct values.
796
796
 
797
797
  Args:
798
798
  name (Optional[str]):
@@ -897,10 +897,8 @@ class StructQueryParameter(_AbstractQueryParameter):
897
897
  values[name] = repr_["parameterValue"]
898
898
  else:
899
899
  s_types[name] = {"name": name, "type": {"type": type_}}
900
- converter = _SCALAR_VALUE_TO_JSON_PARAM.get(type_)
901
- if converter is not None:
902
- value = converter(value) # type: ignore
903
- values[name] = {"value": value}
900
+ converter = _SCALAR_VALUE_TO_JSON_PARAM.get(type_, lambda value: value)
901
+ values[name] = {"value": converter(value)}
904
902
 
905
903
  resource = {
906
904
  "parameterType": {
@@ -12,4 +12,4 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- __version__ = "3.25.0"
15
+ __version__ = "3.26.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: google-cloud-bigquery
3
- Version: 3.25.0
3
+ Version: 3.26.0
4
4
  Summary: Google BigQuery API client library
5
5
  Home-page: https://github.com/googleapis/python-bigquery
6
6
  Author: Google LLC
@@ -22,12 +22,12 @@ Classifier: Operating System :: OS Independent
22
22
  Classifier: Topic :: Internet
23
23
  Requires-Python: >=3.7
24
24
  License-File: LICENSE
25
- Requires-Dist: google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.1
25
+ Requires-Dist: google-api-core[grpc]<3.0.0dev,>=2.11.1
26
26
  Requires-Dist: google-auth<3.0.0dev,>=2.14.1
27
- Requires-Dist: google-cloud-core<3.0.0dev,>=1.6.0
28
- Requires-Dist: google-resumable-media<3.0dev,>=0.6.0
27
+ Requires-Dist: google-cloud-core<3.0.0dev,>=2.4.1
28
+ Requires-Dist: google-resumable-media<3.0dev,>=2.0.0
29
29
  Requires-Dist: packaging>=20.0.0
30
- Requires-Dist: python-dateutil<3.0dev,>=2.7.2
30
+ Requires-Dist: python-dateutil<3.0dev,>=2.7.3
31
31
  Requires-Dist: requests<3.0.0dev,>=2.21.0
32
32
  Provides-Extra: bqstorage
33
33
  Requires-Dist: google-cloud-bigquery-storage<3.0.0dev,>=2.6.0; extra == "bqstorage"
@@ -46,8 +46,7 @@ Provides-Extra: geopandas
46
46
  Requires-Dist: geopandas<1.0dev,>=0.9.0; extra == "geopandas"
47
47
  Requires-Dist: Shapely<3.0.0dev,>=1.8.4; extra == "geopandas"
48
48
  Provides-Extra: ipython
49
- Requires-Dist: ipython!=8.1.0,>=7.23.1; extra == "ipython"
50
- Requires-Dist: ipykernel>=6.0.0; extra == "ipython"
49
+ Requires-Dist: bigquery-magics>=0.1.0; extra == "ipython"
51
50
  Provides-Extra: tqdm
52
51
  Requires-Dist: tqdm<5.0.0dev,>=4.7.4; extra == "tqdm"
53
52
  Provides-Extra: opentelemetry
@@ -55,8 +54,8 @@ Requires-Dist: opentelemetry-api>=1.1.0; extra == "opentelemetry"
55
54
  Requires-Dist: opentelemetry-sdk>=1.1.0; extra == "opentelemetry"
56
55
  Requires-Dist: opentelemetry-instrumentation>=0.20b0; extra == "opentelemetry"
57
56
  Provides-Extra: bigquery-v2
58
- Requires-Dist: proto-plus<2.0.0dev,>=1.15.0; extra == "bigquery-v2"
59
- Requires-Dist: protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5; extra == "bigquery-v2"
57
+ Requires-Dist: proto-plus<2.0.0dev,>=1.22.3; extra == "bigquery-v2"
58
+ Requires-Dist: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2; extra == "bigquery-v2"
60
59
  Provides-Extra: all
61
60
  Requires-Dist: google-cloud-bigquery-storage<3.0.0dev,>=2.6.0; extra == "all"
62
61
  Requires-Dist: grpcio<2.0dev,>=1.47.0; extra == "all"
@@ -70,14 +69,13 @@ Requires-Dist: ipywidgets>=7.7.0; extra == "all"
70
69
  Requires-Dist: ipykernel>=6.0.0; extra == "all"
71
70
  Requires-Dist: geopandas<1.0dev,>=0.9.0; extra == "all"
72
71
  Requires-Dist: Shapely<3.0.0dev,>=1.8.4; extra == "all"
73
- Requires-Dist: ipython!=8.1.0,>=7.23.1; extra == "all"
74
- Requires-Dist: ipykernel>=6.0.0; extra == "all"
72
+ Requires-Dist: bigquery-magics>=0.1.0; extra == "all"
75
73
  Requires-Dist: tqdm<5.0.0dev,>=4.7.4; extra == "all"
76
74
  Requires-Dist: opentelemetry-api>=1.1.0; extra == "all"
77
75
  Requires-Dist: opentelemetry-sdk>=1.1.0; extra == "all"
78
76
  Requires-Dist: opentelemetry-instrumentation>=0.20b0; extra == "all"
79
- Requires-Dist: proto-plus<2.0.0dev,>=1.15.0; extra == "all"
80
- Requires-Dist: protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5; extra == "all"
77
+ Requires-Dist: proto-plus<2.0.0dev,>=1.22.3; extra == "all"
78
+ Requires-Dist: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2; extra == "all"
81
79
 
82
80
  Python Client for Google BigQuery
83
81
  =================================
@@ -1,9 +1,9 @@
1
- google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0dev,>=1.34.1
1
+ google-api-core[grpc]<3.0.0dev,>=2.11.1
2
2
  google-auth<3.0.0dev,>=2.14.1
3
- google-cloud-core<3.0.0dev,>=1.6.0
4
- google-resumable-media<3.0dev,>=0.6.0
3
+ google-cloud-core<3.0.0dev,>=2.4.1
4
+ google-resumable-media<3.0dev,>=2.0.0
5
5
  packaging>=20.0.0
6
- python-dateutil<3.0dev,>=2.7.2
6
+ python-dateutil<3.0dev,>=2.7.3
7
7
  requests<3.0.0dev,>=2.21.0
8
8
 
9
9
  [all]
@@ -16,13 +16,13 @@ ipywidgets>=7.7.0
16
16
  ipykernel>=6.0.0
17
17
  geopandas<1.0dev,>=0.9.0
18
18
  Shapely<3.0.0dev,>=1.8.4
19
- ipython!=8.1.0,>=7.23.1
19
+ bigquery-magics>=0.1.0
20
20
  tqdm<5.0.0dev,>=4.7.4
21
21
  opentelemetry-api>=1.1.0
22
22
  opentelemetry-sdk>=1.1.0
23
23
  opentelemetry-instrumentation>=0.20b0
24
- proto-plus<2.0.0dev,>=1.15.0
25
- protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5
24
+ proto-plus<2.0.0dev,>=1.22.3
25
+ protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2
26
26
 
27
27
  [all:python_version < "3.8"]
28
28
  importlib_metadata>=1.0.0
@@ -31,8 +31,8 @@ importlib_metadata>=1.0.0
31
31
  grpcio<2.0dev,>=1.49.1
32
32
 
33
33
  [bigquery_v2]
34
- proto-plus<2.0.0dev,>=1.15.0
35
- protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5
34
+ proto-plus<2.0.0dev,>=1.22.3
35
+ protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.2
36
36
 
37
37
  [bqstorage]
38
38
  google-cloud-bigquery-storage<3.0.0dev,>=2.6.0
@@ -47,8 +47,7 @@ geopandas<1.0dev,>=0.9.0
47
47
  Shapely<3.0.0dev,>=1.8.4
48
48
 
49
49
  [ipython]
50
- ipython!=8.1.0,>=7.23.1
51
- ipykernel>=6.0.0
50
+ bigquery-magics>=0.1.0
52
51
 
53
52
  [ipywidgets]
54
53
  ipywidgets>=7.7.0
@@ -29,18 +29,12 @@ description = "Google BigQuery API client library"
29
29
  # 'Development Status :: 5 - Production/Stable'
30
30
  release_status = "Development Status :: 5 - Production/Stable"
31
31
  dependencies = [
32
- # NOTE: Maintainers, please do not require google-api-core>=2.x.x
33
- # Until this issue is closed
34
- # https://github.com/googleapis/google-cloud-python/issues/10566
35
- "google-api-core[grpc] >= 1.34.1, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*",
32
+ "google-api-core[grpc] >= 2.11.1, <3.0.0dev",
36
33
  "google-auth >= 2.14.1, <3.0.0dev",
37
- # NOTE: Maintainers, please do not require google-cloud-core>=2.x.x
38
- # Until this issue is closed
39
- # https://github.com/googleapis/google-cloud-python/issues/10566
40
- "google-cloud-core >= 1.6.0, <3.0.0dev",
41
- "google-resumable-media >= 0.6.0, < 3.0dev",
34
+ "google-cloud-core >= 2.4.1, <3.0.0dev",
35
+ "google-resumable-media >= 2.0.0, < 3.0dev",
42
36
  "packaging >= 20.0.0",
43
- "python-dateutil >= 2.7.2, <3.0dev",
37
+ "python-dateutil >= 2.7.3, <3.0dev",
44
38
  "requests >= 2.21.0, < 3.0.0dev",
45
39
  ]
46
40
  pyarrow_dependency = "pyarrow >= 3.0.0"
@@ -72,8 +66,7 @@ extras = {
72
66
  ],
73
67
  "geopandas": ["geopandas>=0.9.0, <1.0dev", "Shapely>=1.8.4, <3.0.0dev"],
74
68
  "ipython": [
75
- "ipython>=7.23.1,!=8.1.0",
76
- "ipykernel>=6.0.0",
69
+ "bigquery-magics >= 0.1.0",
77
70
  ],
78
71
  "tqdm": ["tqdm >= 4.7.4, <5.0.0dev"],
79
72
  "opentelemetry": [
@@ -82,8 +75,8 @@ extras = {
82
75
  "opentelemetry-instrumentation >= 0.20b0",
83
76
  ],
84
77
  "bigquery_v2": [
85
- "proto-plus >= 1.15.0, <2.0.0dev",
86
- "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", # For the legacy proto-based types.
78
+ "proto-plus >= 1.22.3, <2.0.0dev",
79
+ "protobuf>=3.20.2,<6.0.0dev,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", # For the legacy proto-based types.
87
80
  ],
88
81
  }
89
82
 
@@ -50,7 +50,10 @@ def test_bigquery_magic(ipython_interactive):
50
50
  current_process = psutil.Process()
51
51
  conn_count_start = len(current_process.connections())
52
52
 
53
- ip.extension_manager.load_extension("google.cloud.bigquery")
53
+ # Deprecated, but should still work in google-cloud-bigquery 3.x.
54
+ with pytest.warns(FutureWarning, match="bigquery_magics"):
55
+ ip.extension_manager.load_extension("google.cloud.bigquery")
56
+
54
57
  sql = """
55
58
  SELECT
56
59
  CONCAT(
@@ -1320,3 +1320,21 @@ class Test_JobConfig(unittest.TestCase):
1320
1320
  # Confirm that integers get converted to strings.
1321
1321
  job_config.job_timeout_ms = 5000
1322
1322
  assert job_config.job_timeout_ms == "5000" # int is converted to string
1323
+
1324
+ def test_job_timeout_is_none_when_set_none(self):
1325
+ job_config = self._make_one()
1326
+ job_config.job_timeout_ms = None
1327
+ # Confirm value is None and not literal string 'None'
1328
+ assert job_config.job_timeout_ms is None
1329
+
1330
+ def test_job_timeout_properties(self):
1331
+ # Make sure any value stored in properties is erased
1332
+ # when setting job_timeout to None.
1333
+ job_config = self._make_one()
1334
+ job_config.job_timeout_ms = 4200
1335
+ assert job_config.job_timeout_ms == "4200"
1336
+ assert job_config._properties.get("jobTimeoutMs") == "4200"
1337
+
1338
+ job_config.job_timeout_ms = None
1339
+ assert job_config.job_timeout_ms is None
1340
+ assert "jobTimeoutMs" not in job_config._properties