google-cloud-bigtable 2.42.0__tar.gz → 2.44.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.42.0/google_cloud_bigtable.egg-info → google_cloud_bigtable-2.44.0}/PKG-INFO +2 -2
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/batcher.py +7 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/gapic_version.py +1 -1
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/row.py +82 -112
- google_cloud_bigtable-2.44.0/google/cloud/bigtable/row_filters.py +238 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/table.py +9 -2
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin/__init__.py +2 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin/gapic_version.py +1 -1
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/__init__.py +5 -87
- google_cloud_bigtable-2.44.0/google/cloud/bigtable_admin_v2/_compat.py +262 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/gapic_version.py +1 -1
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/client.py +23 -162
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/rest.py +280 -308
- google_cloud_bigtable-2.44.0/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/rest_base.py +650 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/client.py +23 -162
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/rest.py +316 -360
- google_cloud_bigtable-2.44.0/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/rest_base.py +731 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/types/__init__.py +2 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/types/table.py +37 -1
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/__init__.py +3 -87
- google_cloud_bigtable-2.44.0/google/cloud/bigtable_v2/_compat.py +262 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/gapic_version.py +1 -1
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/async_client.py +9 -9
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/client.py +32 -166
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/transports/rest.py +100 -160
- google_cloud_bigtable-2.44.0/google/cloud/bigtable_v2/services/bigtable/transports/rest_base.py +311 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/feature_flags.py +7 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0/google_cloud_bigtable.egg-info}/PKG-INFO +2 -2
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google_cloud_bigtable.egg-info/SOURCES.txt +4 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google_cloud_bigtable.egg-info/requires.txt +1 -1
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/setup.py +1 -1
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/admin_overlay/test_system_async.py +11 -8
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/admin_overlay/test_system_autogen.py +11 -8
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/data/__init__.py +5 -0
- google_cloud_bigtable-2.44.0/tests/system/utils.py +93 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/v2_client/test_data_api.py +45 -60
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/v2_client/test_table_admin.py +7 -18
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/gapic/bigtable_admin_v2/test_bigtable_instance_admin.py +278 -962
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/gapic/bigtable_admin_v2/test_bigtable_table_admin.py +317 -1095
- google_cloud_bigtable-2.44.0/tests/unit/gapic/bigtable_admin_v2/test_compat.py +429 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/gapic/bigtable_v2/test_bigtable.py +85 -459
- google_cloud_bigtable-2.44.0/tests/unit/gapic/bigtable_v2/test_compat.py +429 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_row.py +218 -148
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_row_data.py +8 -8
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_row_filters.py +132 -89
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_table.py +2 -3
- google_cloud_bigtable-2.42.0/google/cloud/bigtable/row_filters.py +0 -869
- google_cloud_bigtable-2.42.0/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/rest_base.py +0 -1743
- google_cloud_bigtable-2.42.0/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/rest_base.py +0 -1998
- google_cloud_bigtable-2.42.0/google/cloud/bigtable_v2/services/bigtable/transports/rest_base.py +0 -718
- google_cloud_bigtable-2.42.0/tests/system/utils.py +0 -58
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/LICENSE +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/MANIFEST.in +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/README.rst +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/app_profile.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/backup.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/cluster.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/column_family.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_async/_mutate_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_async/_read_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_async/_swappable_channel.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_async/client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_async/metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_async/mutations_batcher.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_cross_sync/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_cross_sync/_decorators.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_cross_sync/_mapping_meta.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_cross_sync/cross_sync.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_helpers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_metrics/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_metrics/data_model.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_metrics/handlers/_base.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_metrics/handlers/gcp_exporter.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_metrics/handlers/opentelemetry.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_metrics/metrics_controller.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_metrics/tracked_retry.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_sync_autogen/_mutate_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_sync_autogen/_read_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_sync_autogen/_swappable_channel.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_sync_autogen/client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_sync_autogen/metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/_sync_autogen/mutations_batcher.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/exceptions.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_async/execute_query_iterator.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_byte_cursor.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_checksum.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_parameters_formatting.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_query_result_parsing_utils.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_reader.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/_sync_autogen/execute_query_iterator.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/metadata.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/execute_query/values.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/mutations.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/read_modify_write_rules.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/read_rows_query.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/row.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/data/row_filters.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/encryption_info.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/enums.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/error.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/helpers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/instance.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/policy.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/py.typed +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/row_data.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/row_merger.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/row_set.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin/py.typed +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/gapic_metadata.json +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/services/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/services/bigtable_table_admin/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/services/bigtable_table_admin/async_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/services/bigtable_table_admin/client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/types/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/types/async_consistency.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/types/async_restore_table.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/types/consistency.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/types/restore_table.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/overlay/types/wait_for_consistency_request.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/py.typed +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/async_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/pagers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/base.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/grpc.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/grpc_asyncio.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/async_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/pagers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/base.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/grpc.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/grpc_asyncio.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/types/bigtable_instance_admin.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/types/bigtable_table_admin.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/types/common.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/types/instance.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/types/types.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/utils/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_admin_v2/utils/oneof_message.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/gapic_metadata.json +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/py.typed +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/transports/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/transports/base.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/transports/grpc.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/services/bigtable/transports/grpc_asyncio.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/bigtable.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/data.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/peer_info.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/request_stats.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/response_params.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/session.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable_v2/types/types.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google_cloud_bigtable.egg-info/dependency_links.txt +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google_cloud_bigtable.egg-info/not-zip-safe +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google_cloud_bigtable.egg-info/top_level.txt +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/setup.cfg +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/admin_overlay/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/admin_overlay/conftest.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/conftest.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/cross_sync/test_cases/async_to_sync.yaml +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/cross_sync/test_cases/cross_sync_files.yaml +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/cross_sync/test_cases/rm_aio.yaml +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/cross_sync/test_cases/strip_async_conditional_branches.yaml +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/cross_sync/test_cases/symbol_replacer.yaml +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/cross_sync/test_cross_sync_e2e.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/data/test_metrics_async.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/data/test_metrics_autogen.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/data/test_system_async.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/data/test_system_autogen.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/v2_client/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/v2_client/_helpers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/v2_client/conftest.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/system/v2_client/test_instance_admin.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/my_oneof_message.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_admin_packaging.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_async_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_async_consistency.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_async_restore_table.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_consistency.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_oneof_message.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/admin_overlay/test_restore_table.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/conftest.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/test__mutate_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/test__read_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/test__swappable_channel.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/test_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/test_metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/test_mutations_batcher.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_async/test_read_rows_acceptance.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_cross_sync/test_cross_sync.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_cross_sync/test_cross_sync_decorators.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_metrics/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_metrics/test_data_model.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_metrics/test_gcp_exporter_handler.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_metrics/test_metrics_controller.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_metrics/test_opentelemetry_handler.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_metrics/test_tracked_retry.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/test__mutate_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/test__read_rows.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/test__swappable_channel.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/test_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/test_metrics_interceptor.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/test_mutations_batcher.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/_sync_autogen/test_read_rows_acceptance.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/_async/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/_async/test_query_iterator.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/_sync_autogen/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/_sync_autogen/test_query_iterator.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/resources/README.md +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/resources/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/resources/descriptors.pb +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/resources/singer.proto +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/resources/singer_pb2.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/sql_helpers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/test_byte_cursor.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/test_checksum.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/test_execute_query_parameters_parsing.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/test_metadata.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/test_query_result_parsing_utils.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/execute_query/test_query_result_row_reader.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/read-rows-acceptance-test.json +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test__helpers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_exceptions.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_helpers.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_mutations.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_read_modify_write_rules.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_read_rows_query.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_row.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_row_filters.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/data/test_sync_up_to_date.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/gapic/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/gapic/bigtable_admin_v2/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/gapic/bigtable_v2/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/test_packaging.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/test_sql_routing_parameters.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/__init__.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/_testing.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/read-rows-acceptance-test.json +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_app_profile.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_backup.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_batcher.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_client.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_cluster.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_column_family.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_encryption_info.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_error.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_instance.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_policy.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/tests/unit/v2_client/test_row_merger.py +0 -0
- {google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.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.44.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,7 +21,7 @@ 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.28.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"
|
{google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/batcher.py
RENAMED
|
@@ -186,6 +186,13 @@ class MutationsBatcher(object):
|
|
|
186
186
|
|
|
187
187
|
Note on thread safety: The same :class:`MutationBatcher` cannot be shared by multiple end-user threads.
|
|
188
188
|
|
|
189
|
+
.. warning::
|
|
190
|
+
|
|
191
|
+
If using ``MutationsBatcher``, please ensure you are using
|
|
192
|
+
``google-cloud-bigtable >= 2.42.0``, or consider migrating to the
|
|
193
|
+
batcher provided by the synchronous/asynchronous data client
|
|
194
|
+
(:mod:`google.cloud.bigtable.data`).
|
|
195
|
+
|
|
189
196
|
:type table: class
|
|
190
197
|
:param table: class:`~google.cloud.bigtable.table.Table`.
|
|
191
198
|
|
|
@@ -14,17 +14,16 @@
|
|
|
14
14
|
|
|
15
15
|
"""User-friendly container for Google Cloud Bigtable Row."""
|
|
16
16
|
|
|
17
|
-
import
|
|
18
|
-
|
|
17
|
+
from google.api_core.exceptions import GoogleAPICallError
|
|
19
18
|
from google.cloud._helpers import (
|
|
20
19
|
_datetime_from_microseconds, # type: ignore
|
|
21
20
|
_microseconds_from_datetime, # type: ignore
|
|
22
21
|
_to_bytes, # type: ignore
|
|
23
22
|
)
|
|
23
|
+
from google.rpc import code_pb2, status_pb2
|
|
24
24
|
|
|
25
|
-
from google.cloud.
|
|
26
|
-
|
|
27
|
-
_PACK_I64 = struct.Struct(">q").pack
|
|
25
|
+
from google.cloud.bigtable.data import mutations
|
|
26
|
+
from google.cloud.bigtable.data import read_modify_write_rules as rmw_rules
|
|
28
27
|
|
|
29
28
|
MAX_MUTATIONS = 100000
|
|
30
29
|
"""The maximum number of mutations that a row can accumulate."""
|
|
@@ -158,26 +157,21 @@ class _SetDeleteRow(Row):
|
|
|
158
157
|
:param state: (Optional) The state that is passed along to
|
|
159
158
|
:meth:`_get_mutations`.
|
|
160
159
|
"""
|
|
161
|
-
column = _to_bytes(column)
|
|
162
|
-
if isinstance(value, int):
|
|
163
|
-
value = _PACK_I64(value)
|
|
164
|
-
value = _to_bytes(value)
|
|
165
160
|
if timestamp is None:
|
|
166
|
-
# Use
|
|
167
|
-
timestamp_micros =
|
|
161
|
+
# Use current Bigtable server time.
|
|
162
|
+
timestamp_micros = mutations._SERVER_SIDE_TIMESTAMP
|
|
168
163
|
else:
|
|
169
164
|
timestamp_micros = _microseconds_from_datetime(timestamp)
|
|
170
165
|
# Truncate to millisecond granularity.
|
|
171
166
|
timestamp_micros -= timestamp_micros % 1000
|
|
172
167
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
168
|
+
mutation = mutations.SetCell(
|
|
169
|
+
family=column_family_id,
|
|
170
|
+
qualifier=column,
|
|
171
|
+
new_value=value,
|
|
176
172
|
timestamp_micros=timestamp_micros,
|
|
177
|
-
value=value,
|
|
178
173
|
)
|
|
179
|
-
|
|
180
|
-
self._get_mutations(state).append(mutation_pb)
|
|
174
|
+
self._get_mutations(state).append(mutation)
|
|
181
175
|
|
|
182
176
|
def _delete(self, state=None):
|
|
183
177
|
"""Helper for :meth:`delete`
|
|
@@ -192,9 +186,7 @@ class _SetDeleteRow(Row):
|
|
|
192
186
|
:param state: (Optional) The state that is passed along to
|
|
193
187
|
:meth:`_get_mutations`.
|
|
194
188
|
"""
|
|
195
|
-
|
|
196
|
-
mutation_pb = data_v2_pb2.Mutation(delete_from_row=mutation_val)
|
|
197
|
-
self._get_mutations(state).append(mutation_pb)
|
|
189
|
+
self._get_mutations(state).append(mutations.DeleteAllFromRow())
|
|
198
190
|
|
|
199
191
|
def _delete_cells(self, column_family_id, columns, time_range=None, state=None):
|
|
200
192
|
"""Helper for :meth:`delete_cell` and :meth:`delete_cells`.
|
|
@@ -221,33 +213,30 @@ class _SetDeleteRow(Row):
|
|
|
221
213
|
:param state: (Optional) The state that is passed along to
|
|
222
214
|
:meth:`_get_mutations`.
|
|
223
215
|
"""
|
|
224
|
-
mutations_list = self._get_mutations(state)
|
|
225
216
|
if columns is self.ALL_COLUMNS:
|
|
226
|
-
|
|
227
|
-
|
|
217
|
+
self._get_mutations(state).append(
|
|
218
|
+
mutations.DeleteAllFromFamily(family_to_delete=column_family_id)
|
|
228
219
|
)
|
|
229
|
-
mutation_pb = data_v2_pb2.Mutation(delete_from_family=mutation_val)
|
|
230
|
-
mutations_list.append(mutation_pb)
|
|
231
220
|
else:
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
221
|
+
timestamps = time_range._to_dict() if time_range else {}
|
|
222
|
+
start_timestamp_micros = timestamps.get("start_timestamp_micros")
|
|
223
|
+
end_timestamp_micros = timestamps.get("end_timestamp_micros")
|
|
235
224
|
|
|
236
225
|
to_append = []
|
|
237
226
|
for column in columns:
|
|
238
227
|
column = _to_bytes(column)
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
228
|
+
to_append.append(
|
|
229
|
+
mutations.DeleteRangeFromColumn(
|
|
230
|
+
family=column_family_id,
|
|
231
|
+
qualifier=column,
|
|
232
|
+
start_timestamp_micros=start_timestamp_micros,
|
|
233
|
+
end_timestamp_micros=end_timestamp_micros,
|
|
234
|
+
)
|
|
243
235
|
)
|
|
244
|
-
mutation_val = data_v2_pb2.Mutation.DeleteFromColumn(**delete_kwargs)
|
|
245
|
-
mutation_pb = data_v2_pb2.Mutation(delete_from_column=mutation_val)
|
|
246
|
-
to_append.append(mutation_pb)
|
|
247
236
|
|
|
248
237
|
# We don't add the mutations until all columns have been
|
|
249
238
|
# processed without error.
|
|
250
|
-
|
|
239
|
+
self._get_mutations(state).extend(to_append)
|
|
251
240
|
|
|
252
241
|
|
|
253
242
|
class DirectRow(_SetDeleteRow):
|
|
@@ -285,7 +274,7 @@ class DirectRow(_SetDeleteRow):
|
|
|
285
274
|
|
|
286
275
|
def __init__(self, row_key, table=None):
|
|
287
276
|
super(DirectRow, self).__init__(row_key, table)
|
|
288
|
-
self.
|
|
277
|
+
self._mutations = []
|
|
289
278
|
|
|
290
279
|
def _get_mutations(self, state=None): # pylint: disable=unused-argument
|
|
291
280
|
"""Gets the list of mutations for a given state.
|
|
@@ -300,7 +289,12 @@ class DirectRow(_SetDeleteRow):
|
|
|
300
289
|
:rtype: list
|
|
301
290
|
:returns: The list to add new mutations to (for the current state).
|
|
302
291
|
"""
|
|
303
|
-
return self.
|
|
292
|
+
return self._mutations
|
|
293
|
+
|
|
294
|
+
def _get_mutation_pbs(self):
|
|
295
|
+
"""Gets the list of mutation protos."""
|
|
296
|
+
|
|
297
|
+
return [mut._to_pb() for mut in self._get_mutations()]
|
|
304
298
|
|
|
305
299
|
def get_mutations_size(self):
|
|
306
300
|
"""Gets the total mutations size for current row
|
|
@@ -314,7 +308,7 @@ class DirectRow(_SetDeleteRow):
|
|
|
314
308
|
"""
|
|
315
309
|
|
|
316
310
|
mutation_size = 0
|
|
317
|
-
for mutation in self.
|
|
311
|
+
for mutation in self._get_mutation_pbs():
|
|
318
312
|
mutation_size += mutation._pb.ByteSize()
|
|
319
313
|
|
|
320
314
|
return mutation_size
|
|
@@ -449,7 +443,8 @@ class DirectRow(_SetDeleteRow):
|
|
|
449
443
|
def commit(self):
|
|
450
444
|
"""Makes a ``MutateRow`` API request.
|
|
451
445
|
|
|
452
|
-
If no mutations have been created in the row, no request is made
|
|
446
|
+
If no mutations have been created in the row, no request is made and a
|
|
447
|
+
ValueError is raised instead.
|
|
453
448
|
|
|
454
449
|
Mutations are applied atomically and in order, meaning that earlier
|
|
455
450
|
mutations can be masked / negated by later ones. Cells already present
|
|
@@ -468,14 +463,30 @@ class DirectRow(_SetDeleteRow):
|
|
|
468
463
|
:rtype: :class:`~google.rpc.status_pb2.Status`
|
|
469
464
|
:returns: A response status (`google.rpc.status_pb2.Status`)
|
|
470
465
|
representing success or failure of the row committed.
|
|
471
|
-
:raises: :
|
|
472
|
-
mutations is greater than 100,000.
|
|
466
|
+
:raises: ValueError: if no mutations have been created in the row
|
|
467
|
+
or if the number of mutations is greater than 100,000.
|
|
473
468
|
"""
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
469
|
+
num_mutations = len(self._get_mutations())
|
|
470
|
+
if num_mutations > MAX_MUTATIONS:
|
|
471
|
+
raise ValueError(
|
|
472
|
+
"Number of mutations exceeds the maximum "
|
|
473
|
+
"allowable %d." % (MAX_MUTATIONS,)
|
|
474
|
+
)
|
|
477
475
|
|
|
478
|
-
|
|
476
|
+
try:
|
|
477
|
+
self._table._table_impl.mutate_row(self.row_key, self._get_mutations())
|
|
478
|
+
return status_pb2.Status(code=code_pb2.OK)
|
|
479
|
+
except GoogleAPICallError as e:
|
|
480
|
+
# If the RPC call returns an error, extract the error into a status object, if possible.
|
|
481
|
+
return status_pb2.Status(
|
|
482
|
+
code=e.grpc_status_code.value[0]
|
|
483
|
+
if e.grpc_status_code is not None
|
|
484
|
+
else code_pb2.UNKNOWN,
|
|
485
|
+
message=e.message,
|
|
486
|
+
details=getattr(e, "details", []),
|
|
487
|
+
)
|
|
488
|
+
finally:
|
|
489
|
+
self.clear()
|
|
479
490
|
|
|
480
491
|
def clear(self):
|
|
481
492
|
"""Removes all currently accumulated mutations on the current row.
|
|
@@ -487,7 +498,7 @@ class DirectRow(_SetDeleteRow):
|
|
|
487
498
|
:end-before: [END bigtable_api_row_clear]
|
|
488
499
|
:dedent: 4
|
|
489
500
|
"""
|
|
490
|
-
del self.
|
|
501
|
+
del self._mutations[:]
|
|
491
502
|
|
|
492
503
|
|
|
493
504
|
class ConditionalRow(_SetDeleteRow):
|
|
@@ -598,17 +609,15 @@ class ConditionalRow(_SetDeleteRow):
|
|
|
598
609
|
% (MAX_MUTATIONS, num_true_mutations, num_false_mutations)
|
|
599
610
|
)
|
|
600
611
|
|
|
601
|
-
|
|
602
|
-
resp =
|
|
603
|
-
table_name=self._table.name,
|
|
612
|
+
table = self._table._table_impl
|
|
613
|
+
resp = table.check_and_mutate_row(
|
|
604
614
|
row_key=self._row_key,
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
false_mutations=false_mutations,
|
|
615
|
+
predicate=self._filter,
|
|
616
|
+
true_case_mutations=true_mutations,
|
|
617
|
+
false_case_mutations=false_mutations,
|
|
609
618
|
)
|
|
610
619
|
self.clear()
|
|
611
|
-
return resp
|
|
620
|
+
return resp
|
|
612
621
|
|
|
613
622
|
# pylint: disable=arguments-differ
|
|
614
623
|
def set_cell(self, column_family_id, column, value, timestamp=None, state=True):
|
|
@@ -798,7 +807,7 @@ class AppendRow(Row):
|
|
|
798
807
|
|
|
799
808
|
def __init__(self, row_key, table):
|
|
800
809
|
super(AppendRow, self).__init__(row_key, table)
|
|
801
|
-
self.
|
|
810
|
+
self._rule_list = []
|
|
802
811
|
|
|
803
812
|
def clear(self):
|
|
804
813
|
"""Removes all currently accumulated modifications on current row.
|
|
@@ -810,7 +819,7 @@ class AppendRow(Row):
|
|
|
810
819
|
:end-before: [END bigtable_api_row_clear]
|
|
811
820
|
:dedent: 4
|
|
812
821
|
"""
|
|
813
|
-
del self.
|
|
822
|
+
del self._rule_list[:]
|
|
814
823
|
|
|
815
824
|
def append_cell_value(self, column_family_id, column, value):
|
|
816
825
|
"""Appends a value to an existing cell.
|
|
@@ -843,12 +852,11 @@ class AppendRow(Row):
|
|
|
843
852
|
the targeted cell is unset, it will be treated as
|
|
844
853
|
containing the empty string.
|
|
845
854
|
"""
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
855
|
+
self._rule_list.append(
|
|
856
|
+
rmw_rules.AppendValueRule(
|
|
857
|
+
family=column_family_id, qualifier=column, append_value=value
|
|
858
|
+
)
|
|
850
859
|
)
|
|
851
|
-
self._rule_pb_list.append(rule_pb)
|
|
852
860
|
|
|
853
861
|
def increment_cell_value(self, column_family_id, column, int_value):
|
|
854
862
|
"""Increments a value in an existing cell.
|
|
@@ -887,13 +895,11 @@ class AppendRow(Row):
|
|
|
887
895
|
big-endian signed integer), or the entire request
|
|
888
896
|
will fail.
|
|
889
897
|
"""
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
increment_amount=int_value,
|
|
898
|
+
self._rule_list.append(
|
|
899
|
+
rmw_rules.IncrementRule(
|
|
900
|
+
family=column_family_id, qualifier=column, increment_amount=int_value
|
|
901
|
+
)
|
|
895
902
|
)
|
|
896
|
-
self._rule_pb_list.append(rule_pb)
|
|
897
903
|
|
|
898
904
|
def commit(self):
|
|
899
905
|
"""Makes a ``ReadModifyWriteRow`` API request.
|
|
@@ -926,7 +932,7 @@ class AppendRow(Row):
|
|
|
926
932
|
:raises: :class:`ValueError <exceptions.ValueError>` if the number of
|
|
927
933
|
mutations exceeds the :data:`MAX_MUTATIONS`.
|
|
928
934
|
"""
|
|
929
|
-
num_mutations = len(self.
|
|
935
|
+
num_mutations = len(self._rule_list)
|
|
930
936
|
if num_mutations == 0:
|
|
931
937
|
return {}
|
|
932
938
|
if num_mutations > MAX_MUTATIONS:
|
|
@@ -935,12 +941,10 @@ class AppendRow(Row):
|
|
|
935
941
|
"allowable %d." % (num_mutations, MAX_MUTATIONS)
|
|
936
942
|
)
|
|
937
943
|
|
|
938
|
-
|
|
939
|
-
row_response =
|
|
940
|
-
table_name=self._table.name,
|
|
944
|
+
table = self._table._table_impl
|
|
945
|
+
row_response = table.read_modify_write_row(
|
|
941
946
|
row_key=self._row_key,
|
|
942
|
-
rules=self.
|
|
943
|
-
app_profile_id=self._table._app_profile_id,
|
|
947
|
+
rules=self._rule_list,
|
|
944
948
|
)
|
|
945
949
|
|
|
946
950
|
# Reset modifications after commit-ing request.
|
|
@@ -984,47 +988,13 @@ def _parse_rmw_row_response(row_response):
|
|
|
984
988
|
}
|
|
985
989
|
"""
|
|
986
990
|
result = {}
|
|
987
|
-
for
|
|
988
|
-
|
|
989
|
-
|
|
991
|
+
for cell in row_response.cells:
|
|
992
|
+
column_family = result.setdefault(cell.family, {})
|
|
993
|
+
column = column_family.setdefault(cell.qualifier, [])
|
|
994
|
+
column.append((cell.value, _datetime_from_microseconds(cell.timestamp_micros)))
|
|
990
995
|
return result
|
|
991
996
|
|
|
992
997
|
|
|
993
|
-
def _parse_family_pb(family_pb):
|
|
994
|
-
"""Parses a Family protobuf into a dictionary.
|
|
995
|
-
|
|
996
|
-
:type family_pb: :class:`._generated.data_pb2.Family`
|
|
997
|
-
:param family_pb: A protobuf
|
|
998
|
-
|
|
999
|
-
:rtype: tuple
|
|
1000
|
-
:returns: A string and dictionary. The string is the name of the
|
|
1001
|
-
column family and the dictionary has column names (within the
|
|
1002
|
-
family) as keys and cell lists as values. Each cell is
|
|
1003
|
-
represented with a two-tuple with the value (in bytes) and the
|
|
1004
|
-
timestamp for the cell. For example:
|
|
1005
|
-
|
|
1006
|
-
.. code:: python
|
|
1007
|
-
|
|
1008
|
-
{
|
|
1009
|
-
b'col-name1': [
|
|
1010
|
-
(b'cell-val', datetime.datetime(...)),
|
|
1011
|
-
(b'cell-val-newer', datetime.datetime(...)),
|
|
1012
|
-
],
|
|
1013
|
-
b'col-name2': [
|
|
1014
|
-
(b'altcol-cell-val', datetime.datetime(...)),
|
|
1015
|
-
],
|
|
1016
|
-
}
|
|
1017
|
-
"""
|
|
1018
|
-
result = {}
|
|
1019
|
-
for column in family_pb.columns:
|
|
1020
|
-
result[column.qualifier] = cells = []
|
|
1021
|
-
for cell in column.cells:
|
|
1022
|
-
val_pair = (cell.value, _datetime_from_microseconds(cell.timestamp_micros))
|
|
1023
|
-
cells.append(val_pair)
|
|
1024
|
-
|
|
1025
|
-
return family_pb.name, result
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
998
|
class PartialRowData(object):
|
|
1029
999
|
"""Representation of partial row in a Google Cloud Bigtable Table.
|
|
1030
1000
|
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# Copyright 2016 Google LLC
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
"""Filters for Google Cloud Bigtable Row classes."""
|
|
16
|
+
|
|
17
|
+
import struct
|
|
18
|
+
|
|
19
|
+
from google.cloud.bigtable.data.row_filters import ( # noqa: F401
|
|
20
|
+
ApplyLabelFilter,
|
|
21
|
+
BlockAllFilter,
|
|
22
|
+
CellsColumnLimitFilter,
|
|
23
|
+
CellsRowLimitFilter,
|
|
24
|
+
CellsRowOffsetFilter,
|
|
25
|
+
ColumnQualifierRegexFilter,
|
|
26
|
+
FamilyNameRegexFilter,
|
|
27
|
+
PassAllFilter,
|
|
28
|
+
RowFilter,
|
|
29
|
+
RowFilterChain,
|
|
30
|
+
RowFilterUnion,
|
|
31
|
+
RowKeyRegexFilter,
|
|
32
|
+
RowSampleFilter,
|
|
33
|
+
SinkFilter,
|
|
34
|
+
StripValueTransformerFilter,
|
|
35
|
+
TimestampRange,
|
|
36
|
+
ValueBitmaskFilter,
|
|
37
|
+
ValueRangeFilter,
|
|
38
|
+
ValueRegexFilter,
|
|
39
|
+
_BoolFilter,
|
|
40
|
+
_CellCountFilter,
|
|
41
|
+
_FilterCombination,
|
|
42
|
+
_RegexFilter,
|
|
43
|
+
)
|
|
44
|
+
from google.cloud.bigtable.data.row_filters import (
|
|
45
|
+
ColumnRangeFilter as BaseColumnRangeFilter,
|
|
46
|
+
)
|
|
47
|
+
from google.cloud.bigtable.data.row_filters import (
|
|
48
|
+
ConditionalRowFilter as BaseConditionalRowFilter,
|
|
49
|
+
)
|
|
50
|
+
from google.cloud.bigtable.data.row_filters import (
|
|
51
|
+
TimestampRangeFilter as BaseTimestampRangeFilter,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
_PACK_I64 = struct.Struct(">q").pack
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _deprecated_to_pb(self):
|
|
58
|
+
import warnings
|
|
59
|
+
|
|
60
|
+
warnings.warn(
|
|
61
|
+
"`to_pb()` is deprecated and will be removed in a future release. "
|
|
62
|
+
"Filter objects should be passed directly to Bigtable client read and query "
|
|
63
|
+
"methods without manual protobuf conversion.",
|
|
64
|
+
DeprecationWarning,
|
|
65
|
+
stacklevel=2,
|
|
66
|
+
)
|
|
67
|
+
return self._to_pb()
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
# Provide to_pb alias with DeprecationWarning for backwards compatibility with legacy client code
|
|
71
|
+
RowFilter.to_pb = _deprecated_to_pb # type: ignore[attr-defined]
|
|
72
|
+
TimestampRange.to_pb = _deprecated_to_pb # type: ignore[attr-defined]
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class _MappableAttributesMixin:
|
|
76
|
+
"""
|
|
77
|
+
Mixin for classes that need some of their attribute names remapped.
|
|
78
|
+
|
|
79
|
+
This is for taking some of the classes from the data client row filters
|
|
80
|
+
that are 1:1 with their legacy client counterparts but with some of their
|
|
81
|
+
attributes renamed. To use in a class, override the base class with this mixin
|
|
82
|
+
class and define a map _attribute_map from legacy client attributes to data client
|
|
83
|
+
attributes.
|
|
84
|
+
|
|
85
|
+
Attributes are remapped and redefined in __init__ as well as getattr/setattr.
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
def __init__(self, *args, **kwargs):
|
|
89
|
+
new_kwargs = {self._attribute_map.get(k, k): v for (k, v) in kwargs.items()}
|
|
90
|
+
super(_MappableAttributesMixin, self).__init__(*args, **new_kwargs)
|
|
91
|
+
|
|
92
|
+
def __getattr__(self, name):
|
|
93
|
+
if name not in self._attribute_map:
|
|
94
|
+
raise AttributeError
|
|
95
|
+
return getattr(self, self._attribute_map[name])
|
|
96
|
+
|
|
97
|
+
def __setattr__(self, name, value):
|
|
98
|
+
attribute = self._attribute_map.get(name, name)
|
|
99
|
+
super(_MappableAttributesMixin, self).__setattr__(attribute, value)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# The classes defined below are to provide constructors and members
|
|
103
|
+
# that have an interface that does not match the one used by the data
|
|
104
|
+
# client, for backwards compatibility purposes.
|
|
105
|
+
|
|
106
|
+
# Each underscored class is an ABC. Make them into classes that can be
|
|
107
|
+
# instantiated with a placeholder to_dict method for consistency.
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class TimestampRangeFilter(BaseTimestampRangeFilter):
|
|
111
|
+
"""Row filter that limits cells to a range of time.
|
|
112
|
+
|
|
113
|
+
:type range_: :class:`TimestampRange`
|
|
114
|
+
:param range_: Range of time that cells should match against.
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
def __init__(self, range_):
|
|
118
|
+
self.range_ = range_
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class ExactValueFilter(ValueRegexFilter):
|
|
122
|
+
"""Row filter for an exact value.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
:type value: bytes or str or int
|
|
126
|
+
:param value:
|
|
127
|
+
a literal string encodable as ASCII, or the
|
|
128
|
+
equivalent bytes, or an integer (which will be packed into 8-bytes).
|
|
129
|
+
"""
|
|
130
|
+
|
|
131
|
+
def __init__(self, value):
|
|
132
|
+
if isinstance(value, int):
|
|
133
|
+
value = _PACK_I64(value)
|
|
134
|
+
super(ExactValueFilter, self).__init__(value)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class ColumnRangeFilter(_MappableAttributesMixin, BaseColumnRangeFilter):
|
|
138
|
+
"""A row filter to restrict to a range of columns.
|
|
139
|
+
|
|
140
|
+
Both the start and end column can be included or excluded in the range.
|
|
141
|
+
By default, we include them both, but this can be changed with optional
|
|
142
|
+
flags.
|
|
143
|
+
|
|
144
|
+
:type column_family_id: str
|
|
145
|
+
:param column_family_id: The column family that contains the columns. Must
|
|
146
|
+
be of the form ``[_a-zA-Z0-9][-_.a-zA-Z0-9]*``.
|
|
147
|
+
|
|
148
|
+
:type start_column: bytes
|
|
149
|
+
:param start_column: The start of the range of columns. If no value is
|
|
150
|
+
used, the backend applies no upper bound to the
|
|
151
|
+
values.
|
|
152
|
+
|
|
153
|
+
:type end_column: bytes
|
|
154
|
+
:param end_column: The end of the range of columns. If no value is used,
|
|
155
|
+
the backend applies no upper bound to the values.
|
|
156
|
+
|
|
157
|
+
:type inclusive_start: bool
|
|
158
|
+
:param inclusive_start: Boolean indicating if the start column should be
|
|
159
|
+
included in the range (or excluded). Defaults
|
|
160
|
+
to :data:`True` if ``start_column`` is passed and
|
|
161
|
+
no ``inclusive_start`` was given.
|
|
162
|
+
|
|
163
|
+
:type inclusive_end: bool
|
|
164
|
+
:param inclusive_end: Boolean indicating if the end column should be
|
|
165
|
+
included in the range (or excluded). Defaults
|
|
166
|
+
to :data:`True` if ``end_column`` is passed and
|
|
167
|
+
no ``inclusive_end`` was given.
|
|
168
|
+
|
|
169
|
+
:raises: :class:`ValueError <exceptions.ValueError>` if ``inclusive_start``
|
|
170
|
+
is set but no ``start_column`` is given or if ``inclusive_end``
|
|
171
|
+
is set but no ``end_column`` is given
|
|
172
|
+
"""
|
|
173
|
+
|
|
174
|
+
_attribute_map = {
|
|
175
|
+
"column_family_id": "family_id",
|
|
176
|
+
"start_column": "start_qualifier",
|
|
177
|
+
"end_column": "end_qualifier",
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
class ConditionalRowFilter(_MappableAttributesMixin, BaseConditionalRowFilter):
|
|
182
|
+
"""Conditional row filter which exhibits ternary behavior.
|
|
183
|
+
|
|
184
|
+
Executes one of two filters based on another filter. If the ``base_filter``
|
|
185
|
+
returns any cells in the row, then ``true_filter`` is executed. If not,
|
|
186
|
+
then ``false_filter`` is executed.
|
|
187
|
+
|
|
188
|
+
.. note::
|
|
189
|
+
|
|
190
|
+
The ``base_filter`` does not execute atomically with the true and false
|
|
191
|
+
filters, which may lead to inconsistent or unexpected results.
|
|
192
|
+
|
|
193
|
+
Additionally, executing a :class:`ConditionalRowFilter` has poor
|
|
194
|
+
performance on the server, especially when ``false_filter`` is set.
|
|
195
|
+
|
|
196
|
+
:type base_filter: :class:`RowFilter`
|
|
197
|
+
:param base_filter: The filter to condition on before executing the
|
|
198
|
+
true/false filters.
|
|
199
|
+
|
|
200
|
+
:type true_filter: :class:`RowFilter`
|
|
201
|
+
:param true_filter: (Optional) The filter to execute if there are any cells
|
|
202
|
+
matching ``base_filter``. If not provided, no results
|
|
203
|
+
will be returned in the true case.
|
|
204
|
+
|
|
205
|
+
:type false_filter: :class:`RowFilter`
|
|
206
|
+
:param false_filter: (Optional) The filter to execute if there are no cells
|
|
207
|
+
matching ``base_filter``. If not provided, no results
|
|
208
|
+
will be returned in the false case.
|
|
209
|
+
"""
|
|
210
|
+
|
|
211
|
+
_attribute_map = {"base_filter": "predicate_filter"}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
__all__ = (
|
|
215
|
+
"RowFilter",
|
|
216
|
+
"SinkFilter",
|
|
217
|
+
"PassAllFilter",
|
|
218
|
+
"BlockAllFilter",
|
|
219
|
+
"RowKeyRegexFilter",
|
|
220
|
+
"RowSampleFilter",
|
|
221
|
+
"FamilyNameRegexFilter",
|
|
222
|
+
"ColumnQualifierRegexFilter",
|
|
223
|
+
"TimestampRange",
|
|
224
|
+
"TimestampRangeFilter",
|
|
225
|
+
"ColumnRangeFilter",
|
|
226
|
+
"ValueRegexFilter",
|
|
227
|
+
"ExactValueFilter",
|
|
228
|
+
"ValueRangeFilter",
|
|
229
|
+
"ValueBitmaskFilter",
|
|
230
|
+
"CellsRowOffsetFilter",
|
|
231
|
+
"CellsRowLimitFilter",
|
|
232
|
+
"CellsColumnLimitFilter",
|
|
233
|
+
"StripValueTransformerFilter",
|
|
234
|
+
"ApplyLabelFilter",
|
|
235
|
+
"RowFilterChain",
|
|
236
|
+
"RowFilterUnion",
|
|
237
|
+
"ConditionalRowFilter",
|
|
238
|
+
)
|
{google_cloud_bigtable-2.42.0 → google_cloud_bigtable-2.44.0}/google/cloud/bigtable/table.py
RENAMED
|
@@ -873,6 +873,13 @@ class Table(object):
|
|
|
873
873
|
:end-before: [END bigtable_api_mutations_batcher]
|
|
874
874
|
:dedent: 4
|
|
875
875
|
|
|
876
|
+
.. warning::
|
|
877
|
+
|
|
878
|
+
If using ``MutationsBatcher``, please ensure you are using
|
|
879
|
+
``google-cloud-bigtable >= 2.42.0``, or consider migrating to the
|
|
880
|
+
batcher provided by the synchronous/asynchronous data client
|
|
881
|
+
(:mod:`google.cloud.bigtable.data`).
|
|
882
|
+
|
|
876
883
|
:type flush_count: int
|
|
877
884
|
:param flush_count: (Optional) Maximum number of rows per batch. If it
|
|
878
885
|
reaches the max number of rows it calls finish_batch() to
|
|
@@ -1328,7 +1335,7 @@ def _create_row_request(
|
|
|
1328
1335
|
raise ValueError("Row range and row set cannot be set simultaneously")
|
|
1329
1336
|
|
|
1330
1337
|
if filter_ is not None:
|
|
1331
|
-
request_kwargs["filter"] = filter_.
|
|
1338
|
+
request_kwargs["filter"] = filter_._to_pb()
|
|
1332
1339
|
if limit is not None:
|
|
1333
1340
|
request_kwargs["rows_limit"] = limit
|
|
1334
1341
|
if app_profile_id is not None:
|
|
@@ -1367,7 +1374,7 @@ def _compile_mutation_entries(table_name, rows):
|
|
|
1367
1374
|
for row in rows:
|
|
1368
1375
|
_check_row_table_name(table_name, row)
|
|
1369
1376
|
_check_row_type(row)
|
|
1370
|
-
mutations = row.
|
|
1377
|
+
mutations = row._get_mutation_pbs()
|
|
1371
1378
|
entries.append(entry_klass(row_key=row.row_key, mutations=mutations))
|
|
1372
1379
|
mutations_count += len(mutations)
|
|
1373
1380
|
|
|
@@ -142,6 +142,7 @@ from google.cloud.bigtable_admin_v2.types.instance import (
|
|
|
142
142
|
)
|
|
143
143
|
from google.cloud.bigtable_admin_v2.types.table import (
|
|
144
144
|
AuthorizedView,
|
|
145
|
+
AvroSchema,
|
|
145
146
|
Backup,
|
|
146
147
|
BackupInfo,
|
|
147
148
|
ChangeStreamConfig,
|
|
@@ -270,6 +271,7 @@ __all__ = (
|
|
|
270
271
|
"LogicalView",
|
|
271
272
|
"MaterializedView",
|
|
272
273
|
"AuthorizedView",
|
|
274
|
+
"AvroSchema",
|
|
273
275
|
"Backup",
|
|
274
276
|
"BackupInfo",
|
|
275
277
|
"ChangeStreamConfig",
|