google-cloud-spanner 3.64.0__tar.gz → 3.65.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. google_cloud_spanner-3.65.0/MANIFEST.in +20 -0
  2. {google_cloud_spanner-3.64.0/google_cloud_spanner.egg-info → google_cloud_spanner-3.65.0}/PKG-INFO +154 -47
  3. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/README.rst +151 -44
  4. google_cloud_spanner-3.64.0/google/cloud/spanner.py → google_cloud_spanner-3.65.0/google/cloud/spanner/__init__.py +3 -2
  5. {google_cloud_spanner-3.64.0/google/cloud/spanner_v1 → google_cloud_spanner-3.65.0/google/cloud/spanner}/gapic_version.py +1 -1
  6. google_cloud_spanner-3.65.0/google/cloud/spanner_admin_database/__init__.py +161 -0
  7. {google_cloud_spanner-3.64.0/google/cloud/spanner_admin_instance_v1 → google_cloud_spanner-3.65.0/google/cloud/spanner_admin_database}/gapic_version.py +1 -1
  8. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/__init__.py +1 -0
  9. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/gapic_version.py +1 -1
  10. google_cloud_spanner-3.65.0/google/cloud/spanner_admin_database_v1/py.typed +2 -0
  11. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/client.py +3 -5
  12. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/types/__init__.py +6 -1
  13. google_cloud_spanner-3.65.0/google/cloud/spanner_admin_instance/__init__.py +117 -0
  14. google_cloud_spanner-3.65.0/google/cloud/spanner_admin_instance/gapic_version.py +16 -0
  15. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/__init__.py +1 -0
  16. google_cloud_spanner-3.65.0/google/cloud/spanner_admin_instance_v1/gapic_version.py +16 -0
  17. google_cloud_spanner-3.65.0/google/cloud/spanner_admin_instance_v1/py.typed +2 -0
  18. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/client.py +3 -5
  19. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest.py +12 -15
  20. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/types/__init__.py +5 -1
  21. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/version.py +1 -1
  22. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/__init__.py +1 -3
  23. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/client.py +2 -0
  24. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_helpers.py +11 -5
  25. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/client.py +2 -0
  26. google_cloud_spanner-3.65.0/google/cloud/spanner_v1/gapic_version.py +16 -0
  27. google_cloud_spanner-3.65.0/google/cloud/spanner_v1/py.typed +2 -0
  28. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/async_client.py +6 -2
  29. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/client.py +3 -5
  30. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/transports/grpc.py +1 -0
  31. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/__init__.py +30 -7
  32. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0/google_cloud_spanner.egg-info}/PKG-INFO +154 -47
  33. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google_cloud_spanner.egg-info/SOURCES.txt +9 -1
  34. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google_cloud_spanner.egg-info/requires.txt +1 -1
  35. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/setup.py +12 -13
  36. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/_async/conftest.py +4 -1
  37. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py +9 -12
  38. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py +9 -12
  39. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/spanner_v1/test_spanner.py +9 -12
  40. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test__helpers.py +53 -0
  41. google_cloud_spanner-3.64.0/MANIFEST.in +0 -25
  42. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/LICENSE +0 -0
  43. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/aio/_cross_sync/__init__.py +0 -0
  44. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/aio/_cross_sync/_decorators.py +0 -0
  45. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/aio/_cross_sync/_mapping_meta.py +0 -0
  46. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/aio/_cross_sync/cross_sync.py +0 -0
  47. {google_cloud_spanner-3.64.0/google/cloud/spanner_v1 → google_cloud_spanner-3.65.0/google/cloud/spanner}/py.typed +0 -0
  48. {google_cloud_spanner-3.64.0/google/cloud/spanner_admin_database_v1 → google_cloud_spanner-3.65.0/google/cloud/spanner_admin_database}/py.typed +0 -0
  49. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/gapic_metadata.json +0 -0
  50. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/__init__.py +0 -0
  51. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/__init__.py +0 -0
  52. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/async_client.py +0 -0
  53. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/pagers.py +0 -0
  54. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/__init__.py +0 -0
  55. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/base.py +0 -0
  56. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py +0 -0
  57. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py +0 -0
  58. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest.py +0 -0
  59. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest_base.py +0 -0
  60. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/types/backup.py +0 -0
  61. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/types/backup_schedule.py +0 -0
  62. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/types/common.py +0 -0
  63. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py +0 -0
  64. {google_cloud_spanner-3.64.0/google/cloud/spanner_admin_instance_v1 → google_cloud_spanner-3.65.0/google/cloud/spanner_admin_instance}/py.typed +0 -0
  65. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/gapic_metadata.json +0 -0
  66. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/__init__.py +0 -0
  67. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/__init__.py +0 -0
  68. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/async_client.py +0 -0
  69. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/pagers.py +0 -0
  70. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/__init__.py +0 -0
  71. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/base.py +0 -0
  72. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py +0 -0
  73. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py +0 -0
  74. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest_base.py +0 -0
  75. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/types/common.py +0 -0
  76. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_admin_instance_v1/types/spanner_instance_admin.py +0 -0
  77. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/__init__.py +0 -0
  78. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/_helpers.py +0 -0
  79. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/batch_dml_executor.py +0 -0
  80. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/checksum.py +0 -0
  81. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/client_side_statement_executor.py +0 -0
  82. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/client_side_statement_parser.py +0 -0
  83. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/connection.py +0 -0
  84. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/cursor.py +0 -0
  85. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/exceptions.py +0 -0
  86. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/parse_utils.py +0 -0
  87. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/parsed_statement.py +0 -0
  88. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/parser.py +0 -0
  89. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/partition_helper.py +0 -0
  90. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/transaction_helper.py +0 -0
  91. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/types.py +0 -0
  92. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_dbapi/utils.py +0 -0
  93. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/_helpers.py +0 -0
  94. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/batch.py +0 -0
  95. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/database.py +0 -0
  96. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/database_sessions_manager.py +0 -0
  97. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/instance.py +0 -0
  98. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/pool.py +0 -0
  99. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/session.py +0 -0
  100. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/snapshot.py +0 -0
  101. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/streamed.py +0 -0
  102. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/testing/__init__.py +0 -0
  103. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/testing/database_test.py +0 -0
  104. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/testing/interceptors.py +0 -0
  105. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_async/transaction.py +0 -0
  106. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/_opentelemetry_tracing.py +0 -0
  107. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/backup.py +0 -0
  108. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/batch.py +0 -0
  109. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/data_types.py +0 -0
  110. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/database.py +0 -0
  111. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/database_sessions_manager.py +0 -0
  112. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/exceptions.py +0 -0
  113. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/gapic_metadata.json +0 -0
  114. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/instance.py +0 -0
  115. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/keyset.py +0 -0
  116. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/merged_result_set.py +0 -0
  117. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/metrics/constants.py +0 -0
  118. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/metrics/metrics_capture.py +0 -0
  119. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/metrics/metrics_exporter.py +0 -0
  120. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/metrics/metrics_interceptor.py +0 -0
  121. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/metrics/metrics_tracer.py +0 -0
  122. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/metrics/metrics_tracer_factory.py +0 -0
  123. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/metrics/spanner_metrics_tracer_factory.py +0 -0
  124. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/param_types.py +0 -0
  125. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/pool.py +0 -0
  126. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/request_id_header.py +0 -0
  127. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/__init__.py +0 -0
  128. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/__init__.py +0 -0
  129. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/pagers.py +0 -0
  130. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/transports/__init__.py +0 -0
  131. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/transports/base.py +0 -0
  132. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py +0 -0
  133. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/transports/rest.py +0 -0
  134. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/services/spanner/transports/rest_base.py +0 -0
  135. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/session.py +0 -0
  136. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/snapshot.py +0 -0
  137. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/snapshot_helpers.py +0 -0
  138. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/streamed.py +0 -0
  139. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/table.py +0 -0
  140. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/testing/__init__.py +0 -0
  141. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/testing/database_test.py +0 -0
  142. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/testing/interceptors.py +0 -0
  143. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/testing/mock_database_admin.py +0 -0
  144. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/testing/mock_spanner.py +0 -0
  145. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/testing/spanner_database_admin_pb2_grpc.py +0 -0
  146. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/testing/spanner_pb2_grpc.py +0 -0
  147. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/transaction.py +0 -0
  148. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/change_stream.py +0 -0
  149. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/commit_response.py +0 -0
  150. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/keys.py +0 -0
  151. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/location.py +0 -0
  152. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/mutation.py +0 -0
  153. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/query_plan.py +0 -0
  154. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/result_set.py +0 -0
  155. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/spanner.py +0 -0
  156. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/transaction.py +0 -0
  157. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google/cloud/spanner_v1/types/type.py +0 -0
  158. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google_cloud_spanner.egg-info/dependency_links.txt +0 -0
  159. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google_cloud_spanner.egg-info/not-zip-safe +0 -0
  160. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/google_cloud_spanner.egg-info/top_level.txt +0 -0
  161. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/setup.cfg +0 -0
  162. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/__init__.py +0 -0
  163. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/_builders.py +0 -0
  164. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/_fixtures.py +0 -0
  165. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/_helpers.py +0 -0
  166. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/__init__.py +0 -0
  167. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/mock_server_test_base.py +0 -0
  168. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/test_aborted_transaction.py +0 -0
  169. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/test_basics.py +0 -0
  170. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/test_dbapi_autocommit.py +0 -0
  171. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/test_dbapi_inline_begin.py +0 -0
  172. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/test_dbapi_isolation_level.py +0 -0
  173. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/test_request_id_header.py +0 -0
  174. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/mockserver_tests/test_tags.py +0 -0
  175. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/__init__.py +0 -0
  176. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/_async/__init__.py +0 -0
  177. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/_async/pytest.ini +0 -0
  178. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/_async/test_database_api.py +0 -0
  179. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/_helpers.py +0 -0
  180. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/_sample_data.py +0 -0
  181. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/conftest.py +0 -0
  182. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_backup_api.py +0 -0
  183. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_database_api.py +0 -0
  184. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_dbapi.py +0 -0
  185. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_instance_api.py +0 -0
  186. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_metrics.py +0 -0
  187. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_observability_options.py +0 -0
  188. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_session_api.py +0 -0
  189. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_streaming_chunking.py +0 -0
  190. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/test_table_api.py +0 -0
  191. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/testdata/descriptors.pb +0 -0
  192. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/testdata/singer.proto +0 -0
  193. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/testdata/singer_pb2.py +0 -0
  194. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/utils/__init__.py +0 -0
  195. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/utils/clear_streaming.py +0 -0
  196. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/utils/populate_streaming.py +0 -0
  197. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/utils/scrub_instances.py +0 -0
  198. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/system/utils/streaming_utils.py +0 -0
  199. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/__init__.py +0 -0
  200. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_batch.py +0 -0
  201. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_client.py +0 -0
  202. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_client_extra.py +0 -0
  203. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_database.py +0 -0
  204. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_database_extra.py +0 -0
  205. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_helpers_extra.py +0 -0
  206. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_instance_extra.py +0 -0
  207. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_pool.py +0 -0
  208. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_session.py +0 -0
  209. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_sessions_manager_extra.py +0 -0
  210. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_snapshot.py +0 -0
  211. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_streamed.py +0 -0
  212. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_streamed_extra.py +0 -0
  213. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_transaction.py +0 -0
  214. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/_async/test_transaction_extra.py +0 -0
  215. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/conftest.py +0 -0
  216. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/__init__.py +0 -0
  217. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/conftest.py +0 -0
  218. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/spanner_admin_database_v1/__init__.py +0 -0
  219. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/spanner_admin_instance_v1/__init__.py +0 -0
  220. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/gapic/spanner_v1/__init__.py +0 -0
  221. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/__init__.py +0 -0
  222. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test__helpers.py +0 -0
  223. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_batch_dml_executor.py +0 -0
  224. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_checksum.py +0 -0
  225. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_client_side_statement_executor.py +0 -0
  226. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_connect.py +0 -0
  227. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_connection.py +0 -0
  228. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_cursor.py +0 -0
  229. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_globals.py +0 -0
  230. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_parse_utils.py +0 -0
  231. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_parser.py +0 -0
  232. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_transaction_helper.py +0 -0
  233. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_types.py +0 -0
  234. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/spanner_dbapi/test_utils.py +0 -0
  235. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/streaming-read-acceptance-test.json +0 -0
  236. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test__opentelemetry_tracing.py +0 -0
  237. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_atomic_counter.py +0 -0
  238. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_backup.py +0 -0
  239. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_batch.py +0 -0
  240. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_client.py +0 -0
  241. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_client_context.py +0 -0
  242. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_database.py +0 -0
  243. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_database_session_manager.py +0 -0
  244. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_datatypes.py +0 -0
  245. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_decorators_extra.py +0 -0
  246. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_exceptions.py +0 -0
  247. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_instance.py +0 -0
  248. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_keyset.py +0 -0
  249. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_merged_result_set.py +0 -0
  250. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_metrics.py +0 -0
  251. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_metrics_capture.py +0 -0
  252. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_metrics_concurrency.py +0 -0
  253. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_metrics_exporter.py +0 -0
  254. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_metrics_interceptor.py +0 -0
  255. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_metrics_tracer.py +0 -0
  256. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_metrics_tracer_factory.py +0 -0
  257. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_packaging.py +0 -0
  258. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_param_types.py +0 -0
  259. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_pool.py +0 -0
  260. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_session.py +0 -0
  261. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_snapshot.py +0 -0
  262. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_spanner.py +0 -0
  263. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_spanner_metrics_tracer_factory.py +0 -0
  264. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_streamed.py +0 -0
  265. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_table.py +0 -0
  266. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/test_transaction.py +0 -0
  267. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/testdata/singer.proto +0 -0
  268. {google_cloud_spanner-3.64.0 → google_cloud_spanner-3.65.0}/tests/unit/testdata/singer_pb2.py +0 -0
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2025 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ include README.rst LICENSE
17
+ recursive-include google *.py *.pyi *.json *.proto py.typed
18
+ recursive-include tests *
19
+ global-exclude *.py[co]
20
+ global-exclude __pycache__
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-cloud-spanner
3
- Version: 3.64.0
3
+ Version: 3.65.0
4
4
  Summary: Google Cloud Spanner API client library
5
5
  Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-spanner
6
6
  Author: Google LLC
@@ -12,15 +12,15 @@ Classifier: Intended Audience :: Developers
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.8
16
15
  Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
20
  Classifier: Programming Language :: Python :: 3.14
21
21
  Classifier: Operating System :: OS Independent
22
22
  Classifier: Topic :: Internet
23
- Requires-Python: >=3.8
23
+ Requires-Python: >=3.9
24
24
  License-File: LICENSE
25
25
  Requires-Dist: google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0,>=1.34.0
26
26
  Requires-Dist: google-cloud-core<3.0.0,>=1.4.4
@@ -28,7 +28,7 @@ Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.12.4
28
28
  Requires-Dist: proto-plus<2.0.0,>=1.22.0
29
29
  Requires-Dist: sqlparse>=0.4.4
30
30
  Requires-Dist: proto-plus<2.0.0,>=1.22.2; python_version >= "3.11"
31
- Requires-Dist: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2
31
+ Requires-Dist: protobuf<8.0.0,>=4.25.8
32
32
  Requires-Dist: grpc-interceptor>=0.15.4
33
33
  Requires-Dist: opentelemetry-api>=1.22.0
34
34
  Requires-Dist: opentelemetry-sdk>=1.22.0
@@ -54,29 +54,28 @@ Dynamic: summary
54
54
  Python Client for Cloud Spanner
55
55
  ===============================
56
56
 
57
- |GA| |pypi| |versions|
57
+ |stable| |pypi| |versions|
58
58
 
59
- `Cloud Spanner`_ is the world's first fully managed relational database service
60
- to offer both strong consistency and horizontal scalability for
61
- mission-critical online transaction processing (OLTP) applications. With Cloud
62
- Spanner you enjoy all the traditional benefits of a relational database; but
63
- unlike any other relational database service, Cloud Spanner scales horizontally
64
- to hundreds or thousands of servers to handle the biggest transactional
59
+ `Cloud Spanner`_: is the world's first fully managed relational database service
60
+ to offer both strong consistency and horizontal scalability for
61
+ mission-critical online transaction processing (OLTP) applications. With Cloud
62
+ Spanner you enjoy all the traditional benefits of a relational database; but
63
+ unlike any other relational database service, Cloud Spanner scales horizontally
64
+ to hundreds or thousands of servers to handle the biggest transactional
65
65
  workloads.
66
66
 
67
-
68
67
  - `Client Library Documentation`_
69
68
  - `Product Documentation`_
70
69
 
71
- .. |GA| image:: https://img.shields.io/badge/support-GA-gold.svg
72
- :target: https://github.com/googleapis/google-cloud-python/blob/main/README.rst#general-availability
70
+ .. |stable| image:: https://img.shields.io/badge/support-stable-gold.svg
71
+ :target: https://github.com/googleapis/google-cloud-python/blob/main/README.rst#stability-levels
73
72
  .. |pypi| image:: https://img.shields.io/pypi/v/google-cloud-spanner.svg
74
73
  :target: https://pypi.org/project/google-cloud-spanner/
75
74
  .. |versions| image:: https://img.shields.io/pypi/pyversions/google-cloud-spanner.svg
76
75
  :target: https://pypi.org/project/google-cloud-spanner/
77
- .. _Cloud Spanner: https://cloud.google.com/spanner/
78
- .. _Client Library Documentation: https://cloud.google.com/python/docs/reference/spanner/latest
79
- .. _Product Documentation: https://cloud.google.com/spanner/docs
76
+ .. _Cloud Spanner: https://cloud.google.com/spanner/docs/
77
+ .. _Client Library Documentation: https://cloud.google.com/python/docs/reference/spanner/latest/summary_overview
78
+ .. _Product Documentation: https://cloud.google.com/spanner/docs/
80
79
 
81
80
  Quick Start
82
81
  -----------
@@ -85,49 +84,64 @@ In order to use this library, you first need to go through the following steps:
85
84
 
86
85
  1. `Select or create a Cloud Platform project.`_
87
86
  2. `Enable billing for your project.`_
88
- 3. `Enable the Google Cloud Spanner API.`_
89
- 4. `Setup Authentication.`_
87
+ 3. `Enable the Cloud Spanner.`_
88
+ 4. `Set up Authentication.`_
90
89
 
91
90
  .. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project
92
91
  .. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project
93
- .. _Enable the Google Cloud Spanner API.: https://cloud.google.com/spanner
94
- .. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
92
+ .. _Enable the Cloud Spanner.: https://cloud.google.com/spanner/docs/
93
+ .. _Set up Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
95
94
 
96
95
  Installation
97
96
  ~~~~~~~~~~~~
98
97
 
99
- Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to
100
- create isolated Python environments. The basic problem it addresses is one of
101
- dependencies and versions, and indirectly permissions.
98
+ Install this library in a virtual environment using `venv`_. `venv`_ is a tool that
99
+ creates isolated Python environments. These isolated environments can have separate
100
+ versions of Python packages, which allows you to isolate one project's dependencies
101
+ from the dependencies of other projects.
102
102
 
103
- With `virtualenv`_, it's possible to install this library without needing system
103
+ With `venv`_, it's possible to install this library without needing system
104
104
  install permissions, and without clashing with the installed system
105
105
  dependencies.
106
106
 
107
- .. _`virtualenv`: https://virtualenv.pypa.io/en/latest/
107
+ .. _`venv`: https://docs.python.org/3/library/venv.html
108
+
109
+
110
+ Code samples and snippets
111
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
112
+
113
+ Code samples and snippets live in the `samples/`_ folder.
114
+
115
+ .. _samples/: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-spanner/samples
108
116
 
109
117
 
110
118
  Supported Python Versions
111
119
  ^^^^^^^^^^^^^^^^^^^^^^^^^
112
- Python >= 3.9
120
+ Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
121
+ Python.
113
122
 
114
- Deprecated Python Versions
115
- ^^^^^^^^^^^^^^^^^^^^^^^^^^
116
- Python == 2.7.
117
- Python == 3.5.
118
- Python == 3.6.
119
- Python == 3.7.
120
- Python == 3.8.
123
+ Python >= 3.9, including 3.14
124
+
125
+ .. _active: https://devguide.python.org/devcycle/#in-development-main-branch
126
+ .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
127
+
128
+ Unsupported Python Versions
129
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
130
+ Python <= 3.8
131
+
132
+ If you are using an `end-of-life`_
133
+ version of Python, we recommend that you update as soon as possible to an actively supported version.
134
+
135
+ .. _end-of-life: https://devguide.python.org/devcycle/#end-of-life-branches
121
136
 
122
137
  Mac/Linux
123
138
  ^^^^^^^^^
124
139
 
125
140
  .. code-block:: console
126
141
 
127
- pip install virtualenv
128
- virtualenv <your-env>
142
+ python3 -m venv <your-env>
129
143
  source <your-env>/bin/activate
130
- <your-env>/bin/pip install google-cloud-spanner
144
+ pip install google-cloud-spanner
131
145
 
132
146
 
133
147
  Windows
@@ -135,10 +149,9 @@ Windows
135
149
 
136
150
  .. code-block:: console
137
151
 
138
- pip install virtualenv
139
- virtualenv <your-env>
140
- <your-env>\Scripts\activate
141
- <your-env>\Scripts\pip.exe install google-cloud-spanner
152
+ py -m venv <your-env>
153
+ .\<your-env>\Scripts\activate
154
+ pip install google-cloud-spanner
142
155
 
143
156
 
144
157
  Example Usage
@@ -244,7 +257,7 @@ To add one or more records to a table, use ``insert``:
244
257
  'citizens',
245
258
  columns=['email', 'first_name', 'last_name', 'age'],
246
259
  values=[
247
- ['phred@exammple.com', 'Phred', 'Phlyntstone', 32],
260
+ ['phred@example.com', 'Phred', 'Phlyntstone', 32],
248
261
  ['bharney@example.com', 'Bharney', 'Rhubble', 31],
249
262
  ],
250
263
  )
@@ -283,7 +296,7 @@ if any of the records does not already exist.
283
296
  'citizens',
284
297
  columns=['email', 'age'],
285
298
  values=[
286
- ['phred@exammple.com', 33],
299
+ ['phred@example.com', 33],
287
300
  ['bharney@example.com', 32],
288
301
  ],
289
302
  )
@@ -324,7 +337,101 @@ Auto-retry of aborted transactions is enabled only for ``!autocommit`` mode, as
324
337
  Next Steps
325
338
  ~~~~~~~~~~
326
339
 
327
- - See the `Client Library Documentation`_ to learn how to connect to Cloud
328
- Spanner using this Client Library.
329
- - Read the `Product documentation`_ to learn
330
- more about the product and see How-to Guides.
340
+ - Read the `Client Library Documentation`_ for Cloud Spanner
341
+ to see other available methods on the client.
342
+ - Read the `Cloud Spanner Product documentation`_ to learn
343
+ more about the product and see How-to Guides.
344
+ - View this `README`_ to see the full list of Cloud
345
+ APIs that we cover.
346
+
347
+ .. _Cloud Spanner Product documentation: https://cloud.google.com/spanner/docs/
348
+ .. _README: https://github.com/googleapis/google-cloud-python/blob/main/README.rst
349
+
350
+ Logging
351
+ -------
352
+
353
+ This library uses the standard Python :code:`logging` functionality to log some RPC events that could be of interest for debugging and monitoring purposes.
354
+ Note the following:
355
+
356
+ #. Logs may contain sensitive information. Take care to **restrict access to the logs** if they are saved, whether it be on local storage or on Google Cloud Logging.
357
+ #. Google may refine the occurrence, level, and content of various log messages in this library without flagging such changes as breaking. **Do not depend on immutability of the logging events**.
358
+ #. By default, the logging events from this library are not handled. You must **explicitly configure log handling** using one of the mechanisms below.
359
+
360
+ Simple, environment-based configuration
361
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
362
+
363
+ To enable logging for this library without any changes in your code, set the :code:`GOOGLE_SDK_PYTHON_LOGGING_SCOPE` environment variable to a valid Google
364
+ logging scope. This configures handling of logging events (at level :code:`logging.DEBUG` or higher) from this library in a default manner, emitting the logged
365
+ messages in a structured format. It does not currently allow customizing the logging levels captured nor the handlers, formatters, etc. used for any logging
366
+ event.
367
+
368
+ A logging scope is a period-separated namespace that begins with :code:`google`, identifying the Python module or package to log.
369
+
370
+ - Valid logging scopes: :code:`google`, :code:`google.cloud.asset.v1`, :code:`google.api`, :code:`google.auth`, etc.
371
+ - Invalid logging scopes: :code:`foo`, :code:`123`, etc.
372
+
373
+ **NOTE**: If the logging scope is invalid, the library does not set up any logging handlers.
374
+
375
+ Environment-Based Examples
376
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
377
+
378
+ - Enabling the default handler for all Google-based loggers
379
+
380
+ .. code-block:: console
381
+
382
+ export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google
383
+
384
+ - Enabling the default handler for a specific Google module (for a client library called :code:`library_v1`):
385
+
386
+ .. code-block:: console
387
+
388
+ export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google.cloud.library_v1
389
+
390
+
391
+ Advanced, code-based configuration
392
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
393
+
394
+ You can also configure a valid logging scope using Python's standard `logging` mechanism.
395
+
396
+ Code-Based Examples
397
+ ^^^^^^^^^^^^^^^^^^^
398
+
399
+ - Configuring a handler for all Google-based loggers
400
+
401
+ .. code-block:: python
402
+
403
+ import logging
404
+
405
+ from google.cloud import library_v1
406
+
407
+ base_logger = logging.getLogger("google")
408
+ base_logger.addHandler(logging.StreamHandler())
409
+ base_logger.setLevel(logging.DEBUG)
410
+
411
+ - Configuring a handler for a specific Google module (for a client library called :code:`library_v1`):
412
+
413
+ .. code-block:: python
414
+
415
+ import logging
416
+
417
+ from google.cloud import library_v1
418
+
419
+ base_logger = logging.getLogger("google.cloud.library_v1")
420
+ base_logger.addHandler(logging.StreamHandler())
421
+ base_logger.setLevel(logging.DEBUG)
422
+
423
+ Logging details
424
+ ~~~~~~~~~~~~~~~
425
+
426
+ #. Regardless of which of the mechanisms above you use to configure logging for this library, by default logging events are not propagated up to the root
427
+ logger from the `google`-level logger. If you need the events to be propagated to the root logger, you must explicitly set
428
+ :code:`logging.getLogger("google").propagate = True` in your code.
429
+ #. You can mix the different logging configurations above for different Google modules. For example, you may want use a code-based logging configuration for
430
+ one library, but decide you need to also set up environment-based logging configuration for another library.
431
+
432
+ #. If you attempt to use both code-based and environment-based configuration for the same module, the environment-based configuration will be ineffectual
433
+ if the code -based configuration gets applied first.
434
+
435
+ #. The Google-specific logging configurations (default handlers for environment-based configuration; not propagating logging events to the root logger) get
436
+ executed the first time *any* client library is instantiated in your application, and only if the affected loggers have not been previously configured.
437
+ (This is the reason for 2.i. above.)
@@ -1,29 +1,28 @@
1
1
  Python Client for Cloud Spanner
2
2
  ===============================
3
3
 
4
- |GA| |pypi| |versions|
5
-
6
- `Cloud Spanner`_ is the world's first fully managed relational database service
7
- to offer both strong consistency and horizontal scalability for
8
- mission-critical online transaction processing (OLTP) applications. With Cloud
9
- Spanner you enjoy all the traditional benefits of a relational database; but
10
- unlike any other relational database service, Cloud Spanner scales horizontally
11
- to hundreds or thousands of servers to handle the biggest transactional
4
+ |stable| |pypi| |versions|
5
+
6
+ `Cloud Spanner`_: is the world's first fully managed relational database service
7
+ to offer both strong consistency and horizontal scalability for
8
+ mission-critical online transaction processing (OLTP) applications. With Cloud
9
+ Spanner you enjoy all the traditional benefits of a relational database; but
10
+ unlike any other relational database service, Cloud Spanner scales horizontally
11
+ to hundreds or thousands of servers to handle the biggest transactional
12
12
  workloads.
13
13
 
14
-
15
14
  - `Client Library Documentation`_
16
15
  - `Product Documentation`_
17
16
 
18
- .. |GA| image:: https://img.shields.io/badge/support-GA-gold.svg
19
- :target: https://github.com/googleapis/google-cloud-python/blob/main/README.rst#general-availability
17
+ .. |stable| image:: https://img.shields.io/badge/support-stable-gold.svg
18
+ :target: https://github.com/googleapis/google-cloud-python/blob/main/README.rst#stability-levels
20
19
  .. |pypi| image:: https://img.shields.io/pypi/v/google-cloud-spanner.svg
21
20
  :target: https://pypi.org/project/google-cloud-spanner/
22
21
  .. |versions| image:: https://img.shields.io/pypi/pyversions/google-cloud-spanner.svg
23
22
  :target: https://pypi.org/project/google-cloud-spanner/
24
- .. _Cloud Spanner: https://cloud.google.com/spanner/
25
- .. _Client Library Documentation: https://cloud.google.com/python/docs/reference/spanner/latest
26
- .. _Product Documentation: https://cloud.google.com/spanner/docs
23
+ .. _Cloud Spanner: https://cloud.google.com/spanner/docs/
24
+ .. _Client Library Documentation: https://cloud.google.com/python/docs/reference/spanner/latest/summary_overview
25
+ .. _Product Documentation: https://cloud.google.com/spanner/docs/
27
26
 
28
27
  Quick Start
29
28
  -----------
@@ -32,49 +31,64 @@ In order to use this library, you first need to go through the following steps:
32
31
 
33
32
  1. `Select or create a Cloud Platform project.`_
34
33
  2. `Enable billing for your project.`_
35
- 3. `Enable the Google Cloud Spanner API.`_
36
- 4. `Setup Authentication.`_
34
+ 3. `Enable the Cloud Spanner.`_
35
+ 4. `Set up Authentication.`_
37
36
 
38
37
  .. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project
39
38
  .. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project
40
- .. _Enable the Google Cloud Spanner API.: https://cloud.google.com/spanner
41
- .. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
39
+ .. _Enable the Cloud Spanner.: https://cloud.google.com/spanner/docs/
40
+ .. _Set up Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
42
41
 
43
42
  Installation
44
43
  ~~~~~~~~~~~~
45
44
 
46
- Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to
47
- create isolated Python environments. The basic problem it addresses is one of
48
- dependencies and versions, and indirectly permissions.
45
+ Install this library in a virtual environment using `venv`_. `venv`_ is a tool that
46
+ creates isolated Python environments. These isolated environments can have separate
47
+ versions of Python packages, which allows you to isolate one project's dependencies
48
+ from the dependencies of other projects.
49
49
 
50
- With `virtualenv`_, it's possible to install this library without needing system
50
+ With `venv`_, it's possible to install this library without needing system
51
51
  install permissions, and without clashing with the installed system
52
52
  dependencies.
53
53
 
54
- .. _`virtualenv`: https://virtualenv.pypa.io/en/latest/
54
+ .. _`venv`: https://docs.python.org/3/library/venv.html
55
+
56
+
57
+ Code samples and snippets
58
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
59
+
60
+ Code samples and snippets live in the `samples/`_ folder.
61
+
62
+ .. _samples/: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-spanner/samples
55
63
 
56
64
 
57
65
  Supported Python Versions
58
66
  ^^^^^^^^^^^^^^^^^^^^^^^^^
59
- Python >= 3.9
67
+ Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
68
+ Python.
60
69
 
61
- Deprecated Python Versions
62
- ^^^^^^^^^^^^^^^^^^^^^^^^^^
63
- Python == 2.7.
64
- Python == 3.5.
65
- Python == 3.6.
66
- Python == 3.7.
67
- Python == 3.8.
70
+ Python >= 3.9, including 3.14
71
+
72
+ .. _active: https://devguide.python.org/devcycle/#in-development-main-branch
73
+ .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
74
+
75
+ Unsupported Python Versions
76
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
77
+ Python <= 3.8
78
+
79
+ If you are using an `end-of-life`_
80
+ version of Python, we recommend that you update as soon as possible to an actively supported version.
81
+
82
+ .. _end-of-life: https://devguide.python.org/devcycle/#end-of-life-branches
68
83
 
69
84
  Mac/Linux
70
85
  ^^^^^^^^^
71
86
 
72
87
  .. code-block:: console
73
88
 
74
- pip install virtualenv
75
- virtualenv <your-env>
89
+ python3 -m venv <your-env>
76
90
  source <your-env>/bin/activate
77
- <your-env>/bin/pip install google-cloud-spanner
91
+ pip install google-cloud-spanner
78
92
 
79
93
 
80
94
  Windows
@@ -82,10 +96,9 @@ Windows
82
96
 
83
97
  .. code-block:: console
84
98
 
85
- pip install virtualenv
86
- virtualenv <your-env>
87
- <your-env>\Scripts\activate
88
- <your-env>\Scripts\pip.exe install google-cloud-spanner
99
+ py -m venv <your-env>
100
+ .\<your-env>\Scripts\activate
101
+ pip install google-cloud-spanner
89
102
 
90
103
 
91
104
  Example Usage
@@ -191,7 +204,7 @@ To add one or more records to a table, use ``insert``:
191
204
  'citizens',
192
205
  columns=['email', 'first_name', 'last_name', 'age'],
193
206
  values=[
194
- ['phred@exammple.com', 'Phred', 'Phlyntstone', 32],
207
+ ['phred@example.com', 'Phred', 'Phlyntstone', 32],
195
208
  ['bharney@example.com', 'Bharney', 'Rhubble', 31],
196
209
  ],
197
210
  )
@@ -230,7 +243,7 @@ if any of the records does not already exist.
230
243
  'citizens',
231
244
  columns=['email', 'age'],
232
245
  values=[
233
- ['phred@exammple.com', 33],
246
+ ['phred@example.com', 33],
234
247
  ['bharney@example.com', 32],
235
248
  ],
236
249
  )
@@ -271,7 +284,101 @@ Auto-retry of aborted transactions is enabled only for ``!autocommit`` mode, as
271
284
  Next Steps
272
285
  ~~~~~~~~~~
273
286
 
274
- - See the `Client Library Documentation`_ to learn how to connect to Cloud
275
- Spanner using this Client Library.
276
- - Read the `Product documentation`_ to learn
277
- more about the product and see How-to Guides.
287
+ - Read the `Client Library Documentation`_ for Cloud Spanner
288
+ to see other available methods on the client.
289
+ - Read the `Cloud Spanner Product documentation`_ to learn
290
+ more about the product and see How-to Guides.
291
+ - View this `README`_ to see the full list of Cloud
292
+ APIs that we cover.
293
+
294
+ .. _Cloud Spanner Product documentation: https://cloud.google.com/spanner/docs/
295
+ .. _README: https://github.com/googleapis/google-cloud-python/blob/main/README.rst
296
+
297
+ Logging
298
+ -------
299
+
300
+ This library uses the standard Python :code:`logging` functionality to log some RPC events that could be of interest for debugging and monitoring purposes.
301
+ Note the following:
302
+
303
+ #. Logs may contain sensitive information. Take care to **restrict access to the logs** if they are saved, whether it be on local storage or on Google Cloud Logging.
304
+ #. Google may refine the occurrence, level, and content of various log messages in this library without flagging such changes as breaking. **Do not depend on immutability of the logging events**.
305
+ #. By default, the logging events from this library are not handled. You must **explicitly configure log handling** using one of the mechanisms below.
306
+
307
+ Simple, environment-based configuration
308
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
309
+
310
+ To enable logging for this library without any changes in your code, set the :code:`GOOGLE_SDK_PYTHON_LOGGING_SCOPE` environment variable to a valid Google
311
+ logging scope. This configures handling of logging events (at level :code:`logging.DEBUG` or higher) from this library in a default manner, emitting the logged
312
+ messages in a structured format. It does not currently allow customizing the logging levels captured nor the handlers, formatters, etc. used for any logging
313
+ event.
314
+
315
+ A logging scope is a period-separated namespace that begins with :code:`google`, identifying the Python module or package to log.
316
+
317
+ - Valid logging scopes: :code:`google`, :code:`google.cloud.asset.v1`, :code:`google.api`, :code:`google.auth`, etc.
318
+ - Invalid logging scopes: :code:`foo`, :code:`123`, etc.
319
+
320
+ **NOTE**: If the logging scope is invalid, the library does not set up any logging handlers.
321
+
322
+ Environment-Based Examples
323
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
324
+
325
+ - Enabling the default handler for all Google-based loggers
326
+
327
+ .. code-block:: console
328
+
329
+ export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google
330
+
331
+ - Enabling the default handler for a specific Google module (for a client library called :code:`library_v1`):
332
+
333
+ .. code-block:: console
334
+
335
+ export GOOGLE_SDK_PYTHON_LOGGING_SCOPE=google.cloud.library_v1
336
+
337
+
338
+ Advanced, code-based configuration
339
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340
+
341
+ You can also configure a valid logging scope using Python's standard `logging` mechanism.
342
+
343
+ Code-Based Examples
344
+ ^^^^^^^^^^^^^^^^^^^
345
+
346
+ - Configuring a handler for all Google-based loggers
347
+
348
+ .. code-block:: python
349
+
350
+ import logging
351
+
352
+ from google.cloud import library_v1
353
+
354
+ base_logger = logging.getLogger("google")
355
+ base_logger.addHandler(logging.StreamHandler())
356
+ base_logger.setLevel(logging.DEBUG)
357
+
358
+ - Configuring a handler for a specific Google module (for a client library called :code:`library_v1`):
359
+
360
+ .. code-block:: python
361
+
362
+ import logging
363
+
364
+ from google.cloud import library_v1
365
+
366
+ base_logger = logging.getLogger("google.cloud.library_v1")
367
+ base_logger.addHandler(logging.StreamHandler())
368
+ base_logger.setLevel(logging.DEBUG)
369
+
370
+ Logging details
371
+ ~~~~~~~~~~~~~~~
372
+
373
+ #. Regardless of which of the mechanisms above you use to configure logging for this library, by default logging events are not propagated up to the root
374
+ logger from the `google`-level logger. If you need the events to be propagated to the root logger, you must explicitly set
375
+ :code:`logging.getLogger("google").propagate = True` in your code.
376
+ #. You can mix the different logging configurations above for different Google modules. For example, you may want use a code-based logging configuration for
377
+ one library, but decide you need to also set up environment-based logging configuration for another library.
378
+
379
+ #. If you attempt to use both code-based and environment-based configuration for the same module, the environment-based configuration will be ineffectual
380
+ if the code -based configuration gets applied first.
381
+
382
+ #. The Google-specific logging configurations (default handlers for environment-based configuration; not propagating logging events to the root logger) get
383
+ executed the first time *any* client library is instantiated in your application, and only if the affected loggers have not been previously configured.
384
+ (This is the reason for 2.i. above.)
@@ -1,4 +1,5 @@
1
- # Copyright 2016, Google LLC All rights reserved.
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2025 Google LLC
2
3
  #
3
4
  # Licensed under the Apache License, Version 2.0 (the "License");
4
5
  # you may not use this file except in compliance with the License.
@@ -11,7 +12,7 @@
11
12
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
13
  # See the License for the specific language governing permissions and
13
14
  # limitations under the License.
14
-
15
+ #
15
16
  from __future__ import absolute_import
16
17
 
17
18
  from google.cloud.spanner_v1 import (
@@ -13,4 +13,4 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- __version__ = "3.64.0" # {x-release-please-version}
16
+ __version__ = "3.65.0" # {x-release-please-version}