google-cloud-bigtable 2.40.0__tar.gz → 2.42.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.
- {google_cloud_bigtable-2.40.0/google_cloud_bigtable.egg-info → google_cloud_bigtable-2.42.0}/PKG-INFO +6 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/batcher.py +51 -9
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/client.py +22 -15
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/__init__.py +4 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_async/_mutate_rows.py +13 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_async/_read_rows.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_async/client.py +335 -38
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_async/mutations_batcher.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_helpers.py +3 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_metrics/__init__.py +8 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_metrics/data_model.py +12 -1
- google_cloud_bigtable-2.42.0/google/cloud/bigtable/data/_metrics/handlers/gcp_exporter.py +334 -0
- google_cloud_bigtable-2.42.0/google/cloud/bigtable/data/_metrics/handlers/opentelemetry.py +251 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_metrics/tracked_retry.py +4 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_sync_autogen/_mutate_rows.py +8 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_sync_autogen/_read_rows.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_sync_autogen/client.py +253 -34
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_sync_autogen/mutations_batcher.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/gapic_version.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/row_data.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/table.py +6 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin/gapic_version.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/__init__.py +18 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/gapic_version.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/async_client.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/client.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/base.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/rest.py +1 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/async_client.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/client.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/base.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/rest.py +1 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/types/table.py +4 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/__init__.py +19 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/gapic_version.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/async_client.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/client.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/transports/base.py +1 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/transports/rest.py +1 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/data.py +33 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0/google_cloud_bigtable.egg-info}/PKG-INFO +6 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google_cloud_bigtable.egg-info/SOURCES.txt +4 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google_cloud_bigtable.egg-info/requires.txt +5 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/setup.py +5 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/data/__init__.py +12 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/data/test_metrics_async.py +8 -7
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/data/test_metrics_autogen.py +7 -7
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/data/test_system_async.py +91 -11
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/data/test_system_autogen.py +76 -11
- google_cloud_bigtable-2.42.0/tests/system/v2_client/test_data_api.py +1264 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/test__mutate_rows.py +52 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/test_client.py +502 -37
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/test_mutations_batcher.py +15 -5
- google_cloud_bigtable-2.42.0/tests/unit/data/_metrics/test_gcp_exporter_handler.py +445 -0
- google_cloud_bigtable-2.42.0/tests/unit/data/_metrics/test_opentelemetry_handler.py +404 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/test__mutate_rows.py +46 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/test_client.py +456 -40
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/test_mutations_batcher.py +12 -4
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/gapic/bigtable_admin_v2/test_bigtable_instance_admin.py +48 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/gapic/bigtable_admin_v2/test_bigtable_table_admin.py +56 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/gapic/bigtable_v2/test_bigtable.py +16 -2
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/_testing.py +15 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_batcher.py +94 -10
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_client.py +144 -41
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_instance.py +1 -1
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_row.py +5 -3
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_table.py +100 -54
- google_cloud_bigtable-2.40.0/tests/system/v2_client/test_data_api.py +0 -424
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/LICENSE +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/MANIFEST.in +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/README.rst +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/app_profile.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/backup.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/cluster.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/column_family.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_async/_swappable_channel.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_async/metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_cross_sync/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_cross_sync/_decorators.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_cross_sync/_mapping_meta.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_cross_sync/cross_sync.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_metrics/handlers/_base.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_metrics/metrics_controller.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_sync_autogen/_swappable_channel.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/_sync_autogen/metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/exceptions.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_async/execute_query_iterator.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_byte_cursor.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_checksum.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_parameters_formatting.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_query_result_parsing_utils.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_reader.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/_sync_autogen/execute_query_iterator.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/metadata.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/execute_query/values.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/mutations.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/read_modify_write_rules.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/read_rows_query.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/row.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/row_filters.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/encryption_info.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/enums.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/error.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/helpers.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/instance.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/policy.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/py.typed +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/row.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/row_filters.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/row_merger.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/row_set.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin/py.typed +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/gapic_metadata.json +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/services/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/services/bigtable_table_admin/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/services/bigtable_table_admin/async_client.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/services/bigtable_table_admin/client.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/types/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/types/async_consistency.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/types/async_restore_table.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/types/consistency.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/types/restore_table.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/overlay/types/wait_for_consistency_request.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/py.typed +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/pagers.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/grpc.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/grpc_asyncio.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/rest_base.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/pagers.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/grpc.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/grpc_asyncio.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/rest_base.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/types/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/types/bigtable_instance_admin.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/types/bigtable_table_admin.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/types/common.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/types/instance.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/types/types.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/utils/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_admin_v2/utils/oneof_message.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/gapic_metadata.json +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/py.typed +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/transports/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/transports/grpc.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/transports/grpc_asyncio.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/services/bigtable/transports/rest_base.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/bigtable.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/feature_flags.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/peer_info.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/request_stats.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/response_params.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/session.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable_v2/types/types.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google_cloud_bigtable.egg-info/dependency_links.txt +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google_cloud_bigtable.egg-info/not-zip-safe +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google_cloud_bigtable.egg-info/top_level.txt +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/setup.cfg +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/admin_overlay/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/admin_overlay/conftest.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/admin_overlay/test_system_async.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/admin_overlay/test_system_autogen.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/conftest.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/cross_sync/test_cases/async_to_sync.yaml +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/cross_sync/test_cases/cross_sync_files.yaml +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/cross_sync/test_cases/rm_aio.yaml +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/cross_sync/test_cases/strip_async_conditional_branches.yaml +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/cross_sync/test_cases/symbol_replacer.yaml +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/cross_sync/test_cross_sync_e2e.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/utils.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/v2_client/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/v2_client/_helpers.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/v2_client/conftest.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/v2_client/test_instance_admin.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/system/v2_client/test_table_admin.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/my_oneof_message.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_admin_packaging.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_async_client.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_async_consistency.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_async_restore_table.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_client.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_consistency.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_oneof_message.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/admin_overlay/test_restore_table.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/conftest.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/test__read_rows.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/test__swappable_channel.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/test_metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_async/test_read_rows_acceptance.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_cross_sync/test_cross_sync.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_cross_sync/test_cross_sync_decorators.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_metrics/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_metrics/test_data_model.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_metrics/test_metrics_controller.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_metrics/test_tracked_retry.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/test__read_rows.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/test__swappable_channel.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/test_metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/_sync_autogen/test_read_rows_acceptance.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/_async/test_query_iterator.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/_sync_autogen/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/_sync_autogen/test_query_iterator.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/resources/README.md +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/resources/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/resources/descriptors.pb +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/resources/singer.proto +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/resources/singer_pb2.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/sql_helpers.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/test_byte_cursor.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/test_checksum.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/test_execute_query_parameters_parsing.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/test_metadata.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/test_query_result_parsing_utils.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/execute_query/test_query_result_row_reader.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/read-rows-acceptance-test.json +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test__helpers.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_exceptions.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_helpers.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_mutations.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_read_modify_write_rules.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_read_rows_query.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_row.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_row_filters.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/data/test_sync_up_to_date.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/gapic/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/gapic/bigtable_admin_v2/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/gapic/bigtable_v2/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/test_packaging.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/test_sql_routing_parameters.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/__init__.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/read-rows-acceptance-test.json +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_app_profile.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_backup.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_cluster.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_column_family.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_encryption_info.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_error.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_policy.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_row_data.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_row_filters.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_row_merger.py +0 -0
- {google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/tests/unit/v2_client/test_row_set.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: google-cloud-bigtable
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.42.0
|
|
4
4
|
Summary: Google Cloud Bigtable API client library
|
|
5
5
|
Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigtable
|
|
6
6
|
Author: Google LLC
|
|
@@ -21,15 +21,18 @@ Classifier: Operating System :: OS Independent
|
|
|
21
21
|
Classifier: Topic :: Internet
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
23
|
License-File: LICENSE
|
|
24
|
-
Requires-Dist: google-api-core[grpc]<3.0.0,>=2.
|
|
24
|
+
Requires-Dist: google-api-core[grpc]<3.0.0,>=2.25.0
|
|
25
25
|
Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
|
|
26
26
|
Requires-Dist: grpcio<2.0.0,>=1.59.0
|
|
27
27
|
Requires-Dist: grpcio<2.0.0,>=1.75.1; python_version >= "3.14"
|
|
28
28
|
Requires-Dist: proto-plus<2.0.0,>=1.26.1
|
|
29
29
|
Requires-Dist: protobuf<8.0.0,>=6.33.5
|
|
30
|
+
Requires-Dist: google-cloud-monitoring<3.0.0dev,>=2.0.0
|
|
30
31
|
Requires-Dist: google-cloud-core<3.0.0,>=2.0.0
|
|
31
32
|
Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.14.2
|
|
32
|
-
Requires-Dist: google-crc32c<2.0.
|
|
33
|
+
Requires-Dist: google-crc32c<2.0.0,>=1.6.0
|
|
34
|
+
Requires-Dist: opentelemetry-api<2.0.0dev,>=1.0.0
|
|
35
|
+
Requires-Dist: opentelemetry-sdk<2.0.0dev,>=1.0.0
|
|
33
36
|
Provides-Extra: libcst
|
|
34
37
|
Requires-Dist: libcst>=0.2.5; extra == "libcst"
|
|
35
38
|
Dynamic: author
|
{google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/batcher.py
RENAMED
|
@@ -174,10 +174,15 @@ class MutationsBatcher(object):
|
|
|
174
174
|
request.
|
|
175
175
|
|
|
176
176
|
This class is not suited for usage in systems where each mutation
|
|
177
|
-
must be guaranteed to be sent, since calling mutate may only
|
|
178
|
-
in-memory change.
|
|
179
|
-
|
|
180
|
-
|
|
177
|
+
must be guaranteed to be sent, since calling :func:`mutate()` may only
|
|
178
|
+
result in an in-memory change. Rows are only sent to the service when a size
|
|
179
|
+
limit is reached, when :func:`flush()` is called explicitly, or when the
|
|
180
|
+
batcher is closed (:func:`close()` is also registered to run at interpreter
|
|
181
|
+
exit). There is no time-based background flush. As a result, if the process
|
|
182
|
+
terminates abruptly -- e.g. a crash, ``SIGKILL``, or ``os._exit`` where the
|
|
183
|
+
``atexit`` handler never runs -- any :class:`DirectRow` still buffered in
|
|
184
|
+
memory is silently dropped and never sent, even after :func:`mutate()`
|
|
185
|
+
returned.
|
|
181
186
|
|
|
182
187
|
Note on thread safety: The same :class:`MutationBatcher` cannot be shared by multiple end-user threads.
|
|
183
188
|
|
|
@@ -196,8 +201,9 @@ class MutationsBatcher(object):
|
|
|
196
201
|
(5 MB).
|
|
197
202
|
|
|
198
203
|
:type flush_interval: float
|
|
199
|
-
:param flush_interval: (
|
|
200
|
-
|
|
204
|
+
:param flush_interval: (Deprecated) No longer used. Retained only for
|
|
205
|
+
backwards compatibility. There is no time-based background flush; see the
|
|
206
|
+
class docstring for when rows are sent.
|
|
201
207
|
|
|
202
208
|
:type batch_completed_callback: Callable[list:[`~google.rpc.status_pb2.Status`]] = None
|
|
203
209
|
:param batch_completed_callback: (Optional) A callable for handling responses
|
|
@@ -219,8 +225,12 @@ class MutationsBatcher(object):
|
|
|
219
225
|
self.table = table
|
|
220
226
|
self._executor = concurrent.futures.ThreadPoolExecutor()
|
|
221
227
|
atexit.register(self.close)
|
|
222
|
-
|
|
223
|
-
|
|
228
|
+
# ``flush_interval`` is retained for backwards compatibility but is no
|
|
229
|
+
# longer used: the previous background ``threading.Timer`` was one-shot
|
|
230
|
+
# (never re-armed), so it fired at most once and could silently drop the
|
|
231
|
+
# rows it dequeued if that single flush raised on the timer thread.
|
|
232
|
+
# Flushing now happens only on size thresholds, explicit ``flush()``,
|
|
233
|
+
# or ``close()`` (also registered via ``atexit``).
|
|
224
234
|
self.flow_control = _FlowControl(
|
|
225
235
|
max_mutations=MAX_OUTSTANDING_ELEMENTS,
|
|
226
236
|
max_mutation_bytes=MAX_OUTSTANDING_BYTES,
|
|
@@ -350,6 +360,26 @@ class MutationsBatcher(object):
|
|
|
350
360
|
processed_rows = self.futures_mapping[future]
|
|
351
361
|
self.flow_control.release(processed_rows)
|
|
352
362
|
del self.futures_mapping[future]
|
|
363
|
+
# Surface any exception raised inside the async flush. Without this, an
|
|
364
|
+
# exception raised by ``_flush_rows`` (e.g. a non-retryable RPC error, a
|
|
365
|
+
# retry deadline, or a response-count mismatch) would be stored on the
|
|
366
|
+
# future and silently discarded, so the failed mutations would never be
|
|
367
|
+
# reported to the user -- effectively silent data loss. Per-row errors
|
|
368
|
+
# from a successful RPC are already recorded in ``self.exceptions`` by
|
|
369
|
+
# ``_flush_rows``; here the whole batch failed with a single exception,
|
|
370
|
+
# so record it once per row in the batch to keep the reported error
|
|
371
|
+
# count aligned with the number of affected mutations.
|
|
372
|
+
#
|
|
373
|
+
# A cancelled future is "done", so this callback still runs for it, but
|
|
374
|
+
# ``future.exception()`` would raise ``CancelledError``. Nothing here
|
|
375
|
+
# cancels futures today, but guard against it so the callback stays
|
|
376
|
+
# correct if cancellation is ever introduced.
|
|
377
|
+
if future.cancelled():
|
|
378
|
+
return
|
|
379
|
+
exc = future.exception()
|
|
380
|
+
if exc is not None:
|
|
381
|
+
for _ in range(processed_rows.rows_count):
|
|
382
|
+
self.exceptions.put(exc)
|
|
353
383
|
|
|
354
384
|
def _row_fits_in_batch(self, row, batch_info):
|
|
355
385
|
"""Checks if a row can fit in the current batch.
|
|
@@ -405,7 +435,19 @@ class MutationsBatcher(object):
|
|
|
405
435
|
:raises:
|
|
406
436
|
* :exc:`.batcherMutationsBatchError` if there's any error in the mutations.
|
|
407
437
|
"""
|
|
408
|
-
|
|
438
|
+
try:
|
|
439
|
+
self.flush()
|
|
440
|
+
except MutationsBatchError as exc:
|
|
441
|
+
for e in exc.exc:
|
|
442
|
+
self.exceptions.put(e)
|
|
443
|
+
except Exception as exc:
|
|
444
|
+
# A failure in this final synchronous flush must not abort cleanup.
|
|
445
|
+
# If it propagated here it would skip the executor shutdown (leaving
|
|
446
|
+
# in-flight async flushes un-awaited) and skip draining
|
|
447
|
+
# self.exceptions, masking every error already captured from
|
|
448
|
+
# earlier async flushes -- silently discarding those failures.
|
|
449
|
+
# Record it like any other batch failure and continue.
|
|
450
|
+
self.exceptions.put(exc)
|
|
409
451
|
self._executor.shutdown(wait=True)
|
|
410
452
|
atexit.unregister(self.close)
|
|
411
453
|
if self.exceptions.qsize() > 0:
|
{google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/client.py
RENAMED
|
@@ -28,6 +28,7 @@ In the hierarchy of API concepts
|
|
|
28
28
|
:class:`~google.cloud.bigtable.row.Row` (and all the cells in the row)
|
|
29
29
|
"""
|
|
30
30
|
|
|
31
|
+
import copy
|
|
31
32
|
import os
|
|
32
33
|
import warnings
|
|
33
34
|
|
|
@@ -37,7 +38,7 @@ from google.auth.credentials import AnonymousCredentials # type: ignore
|
|
|
37
38
|
from google.cloud.client import ClientWithProject # type: ignore
|
|
38
39
|
from google.cloud.environment_vars import BIGTABLE_EMULATOR # type: ignore
|
|
39
40
|
|
|
40
|
-
from google.cloud import bigtable, bigtable_admin_v2
|
|
41
|
+
from google.cloud import bigtable, bigtable_admin_v2
|
|
41
42
|
from google.cloud.bigtable.cluster import _CLUSTER_NAME_RE, Cluster
|
|
42
43
|
from google.cloud.bigtable.instance import Instance
|
|
43
44
|
from google.cloud.bigtable_admin_v2.services.bigtable_instance_admin.transports import (
|
|
@@ -47,7 +48,6 @@ from google.cloud.bigtable_admin_v2.services.bigtable_table_admin.transports imp
|
|
|
47
48
|
BigtableTableAdminGrpcTransport,
|
|
48
49
|
)
|
|
49
50
|
from google.cloud.bigtable_admin_v2.types import instance
|
|
50
|
-
from google.cloud.bigtable_v2.services.bigtable.transports import BigtableGrpcTransport
|
|
51
51
|
|
|
52
52
|
INSTANCE_TYPE_PRODUCTION = instance.Instance.Type.PRODUCTION
|
|
53
53
|
INSTANCE_TYPE_DEVELOPMENT = instance.Instance.Type.DEVELOPMENT
|
|
@@ -60,7 +60,6 @@ DATA_SCOPE = "https://www.googleapis.com/auth/bigtable.data"
|
|
|
60
60
|
READ_ONLY_SCOPE = "https://www.googleapis.com/auth/bigtable.data.readonly"
|
|
61
61
|
"""Scope for reading table data."""
|
|
62
62
|
|
|
63
|
-
_DEFAULT_BIGTABLE_EMULATOR_CLIENT = "google-cloud-bigtable-emulator"
|
|
64
63
|
_GRPC_CHANNEL_OPTIONS = (
|
|
65
64
|
("grpc.max_send_message_length", -1),
|
|
66
65
|
("grpc.max_receive_message_length", -1),
|
|
@@ -68,6 +67,8 @@ _GRPC_CHANNEL_OPTIONS = (
|
|
|
68
67
|
("grpc.keepalive_timeout_ms", 10000),
|
|
69
68
|
)
|
|
70
69
|
|
|
70
|
+
_DEFAULT_BIGTABLE_EMULATOR_CLIENT = "google-cloud-bigtable-emulator"
|
|
71
|
+
|
|
71
72
|
|
|
72
73
|
def _create_gapic_client(client_class, client_options=None, transport=None):
|
|
73
74
|
def inner(self):
|
|
@@ -284,18 +285,7 @@ class Client(ClientWithProject):
|
|
|
284
285
|
:rtype: :class:`.bigtable_v2.BigtableClient`
|
|
285
286
|
:returns: A BigtableClient object.
|
|
286
287
|
"""
|
|
287
|
-
|
|
288
|
-
transport = self._create_gapic_client_channel(
|
|
289
|
-
bigtable_v2.BigtableClient,
|
|
290
|
-
BigtableGrpcTransport,
|
|
291
|
-
)
|
|
292
|
-
klass = _create_gapic_client(
|
|
293
|
-
bigtable_v2.BigtableClient,
|
|
294
|
-
client_options=self._client_options,
|
|
295
|
-
transport=transport,
|
|
296
|
-
)
|
|
297
|
-
self._table_data_client = klass(self)
|
|
298
|
-
return self._table_data_client
|
|
288
|
+
return self._veneer_data_client._gapic_client
|
|
299
289
|
|
|
300
290
|
@property
|
|
301
291
|
def table_admin_client(self):
|
|
@@ -363,6 +353,23 @@ class Client(ClientWithProject):
|
|
|
363
353
|
self._instance_admin_client = klass(self)
|
|
364
354
|
return self._instance_admin_client
|
|
365
355
|
|
|
356
|
+
@property
|
|
357
|
+
def _veneer_data_client(self):
|
|
358
|
+
"""Getter for the new Data Table API."""
|
|
359
|
+
if self._table_data_client is None:
|
|
360
|
+
from google.cloud.bigtable.data import BigtableDataClient
|
|
361
|
+
|
|
362
|
+
client_info = copy.copy(self._client_info)
|
|
363
|
+
client_info.client_library_version = f"{bigtable.__version__}-data-shim"
|
|
364
|
+
self._table_data_client = BigtableDataClient(
|
|
365
|
+
project=self.project,
|
|
366
|
+
credentials=self._credentials,
|
|
367
|
+
client_options=self._client_options,
|
|
368
|
+
_client_info=client_info,
|
|
369
|
+
_disable_background_refresh=True,
|
|
370
|
+
)
|
|
371
|
+
return self._table_data_client
|
|
372
|
+
|
|
366
373
|
def instance(self, instance_id, display_name=None, instance_type=None, labels=None):
|
|
367
374
|
"""Factory to create a instance associated with this client.
|
|
368
375
|
|
{google_cloud_bigtable-2.40.0 → google_cloud_bigtable-2.42.0}/google/cloud/bigtable/data/__init__.py
RENAMED
|
@@ -19,6 +19,7 @@ from google.cloud.bigtable.data._async._read_rows import _ReadRowsOperationAsync
|
|
|
19
19
|
from google.cloud.bigtable.data._async.client import (
|
|
20
20
|
AuthorizedViewAsync,
|
|
21
21
|
BigtableDataClientAsync,
|
|
22
|
+
MaterializedViewAsync,
|
|
22
23
|
TableAsync,
|
|
23
24
|
)
|
|
24
25
|
from google.cloud.bigtable.data._async.mutations_batcher import MutationsBatcherAsync
|
|
@@ -33,6 +34,7 @@ from google.cloud.bigtable.data._sync_autogen._read_rows import _ReadRowsOperati
|
|
|
33
34
|
from google.cloud.bigtable.data._sync_autogen.client import (
|
|
34
35
|
AuthorizedView,
|
|
35
36
|
BigtableDataClient,
|
|
37
|
+
MaterializedView,
|
|
36
38
|
Table,
|
|
37
39
|
)
|
|
38
40
|
from google.cloud.bigtable.data._sync_autogen.mutations_batcher import MutationsBatcher
|
|
@@ -80,10 +82,12 @@ __all__ = (
|
|
|
80
82
|
"BigtableDataClientAsync",
|
|
81
83
|
"TableAsync",
|
|
82
84
|
"AuthorizedViewAsync",
|
|
85
|
+
"MaterializedViewAsync",
|
|
83
86
|
"MutationsBatcherAsync",
|
|
84
87
|
"BigtableDataClient",
|
|
85
88
|
"Table",
|
|
86
89
|
"AuthorizedView",
|
|
90
|
+
"MaterializedView",
|
|
87
91
|
"MutationsBatcher",
|
|
88
92
|
"RowKeySamples",
|
|
89
93
|
"ReadRowsQuery",
|
|
@@ -23,7 +23,7 @@ import google.cloud.bigtable.data.exceptions as bt_exceptions
|
|
|
23
23
|
import google.cloud.bigtable_v2.types.bigtable as types_pb
|
|
24
24
|
from google.cloud.bigtable.data._cross_sync import CrossSync
|
|
25
25
|
from google.cloud.bigtable.data._helpers import _attempt_timeout_generator
|
|
26
|
-
from google.cloud.bigtable.data._metrics import tracked_retry
|
|
26
|
+
from google.cloud.bigtable.data._metrics.tracked_retry import tracked_retry
|
|
27
27
|
|
|
28
28
|
# mutate_rows requests are limited to this number of mutations
|
|
29
29
|
from google.cloud.bigtable.data.mutations import (
|
|
@@ -214,6 +214,18 @@ class _MutateRowsOperationAsync:
|
|
|
214
214
|
self._handle_entry_error(idx, exc)
|
|
215
215
|
# bubble up exception to be handled by retry wrapper
|
|
216
216
|
raise
|
|
217
|
+
# Any entries that were sent but never received a response entry (a
|
|
218
|
+
# successfully-closed but incomplete stream) must not be treated as
|
|
219
|
+
# successful. Record a retryable error so idempotent entries are retried
|
|
220
|
+
# and non-idempotent entries surface as failures instead of being
|
|
221
|
+
# silently dropped.
|
|
222
|
+
for idx in active_request_indices.values():
|
|
223
|
+
self._handle_entry_error(
|
|
224
|
+
idx,
|
|
225
|
+
bt_exceptions._MutateRowsIncomplete(
|
|
226
|
+
"no response entry received for mutation"
|
|
227
|
+
),
|
|
228
|
+
)
|
|
217
229
|
# check if attempt succeeded, or needs to be retried
|
|
218
230
|
if self.remaining_indices:
|
|
219
231
|
# unfinished work; raise exception to trigger retry
|
|
@@ -25,7 +25,7 @@ from google.cloud.bigtable.data._cross_sync import CrossSync
|
|
|
25
25
|
from google.cloud.bigtable.data._helpers import (
|
|
26
26
|
_attempt_timeout_generator,
|
|
27
27
|
)
|
|
28
|
-
from google.cloud.bigtable.data._metrics import tracked_retry
|
|
28
|
+
from google.cloud.bigtable.data._metrics.tracked_retry import tracked_retry
|
|
29
29
|
from google.cloud.bigtable.data.exceptions import (
|
|
30
30
|
InvalidChunk,
|
|
31
31
|
_ResetRow,
|