google-cloud-spanner 3.56.0__tar.gz → 3.57.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 (210) hide show
  1. {google_cloud_spanner-3.56.0/google_cloud_spanner.egg-info → google_cloud_spanner-3.57.0}/PKG-INFO +1 -1
  2. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/gapic_version.py +1 -1
  3. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/gapic_version.py +1 -1
  4. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/connection.py +2 -1
  5. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/gapic_version.py +1 -1
  6. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/snapshot.py +6 -2
  7. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/transaction.py +9 -3
  8. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0/google_cloud_spanner.egg-info}/PKG-INFO +1 -1
  9. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/mock_server_test_base.py +5 -1
  10. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/test_request_id_header.py +0 -6
  11. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_database_api.py +8 -2
  12. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_session_api.py +7 -1
  13. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_connect.py +2 -2
  14. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_connection.py +4 -1
  15. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_snapshot.py +1 -0
  16. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_transaction.py +1 -1
  17. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/LICENSE +0 -0
  18. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/MANIFEST.in +0 -0
  19. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/README.rst +0 -0
  20. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner.py +0 -0
  21. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/__init__.py +0 -0
  22. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/gapic_metadata.json +0 -0
  23. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/py.typed +0 -0
  24. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/__init__.py +0 -0
  25. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/__init__.py +0 -0
  26. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/async_client.py +0 -0
  27. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/client.py +0 -0
  28. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/pagers.py +0 -0
  29. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/__init__.py +0 -0
  30. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/base.py +0 -0
  31. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py +0 -0
  32. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py +0 -0
  33. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest.py +0 -0
  34. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest_base.py +0 -0
  35. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/types/__init__.py +0 -0
  36. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/types/backup.py +0 -0
  37. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/types/backup_schedule.py +0 -0
  38. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/types/common.py +0 -0
  39. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py +0 -0
  40. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/__init__.py +0 -0
  41. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/gapic_metadata.json +0 -0
  42. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/py.typed +0 -0
  43. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/__init__.py +0 -0
  44. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/__init__.py +0 -0
  45. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/async_client.py +0 -0
  46. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/client.py +0 -0
  47. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/pagers.py +0 -0
  48. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/__init__.py +0 -0
  49. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/base.py +0 -0
  50. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py +0 -0
  51. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py +0 -0
  52. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest.py +0 -0
  53. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest_base.py +0 -0
  54. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/types/__init__.py +0 -0
  55. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/types/common.py +0 -0
  56. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_admin_instance_v1/types/spanner_instance_admin.py +0 -0
  57. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/__init__.py +0 -0
  58. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/_helpers.py +0 -0
  59. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/batch_dml_executor.py +0 -0
  60. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/checksum.py +0 -0
  61. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/client_side_statement_executor.py +0 -0
  62. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/client_side_statement_parser.py +0 -0
  63. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/cursor.py +0 -0
  64. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/exceptions.py +0 -0
  65. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/parse_utils.py +0 -0
  66. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/parsed_statement.py +0 -0
  67. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/parser.py +0 -0
  68. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/partition_helper.py +0 -0
  69. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/transaction_helper.py +0 -0
  70. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/types.py +0 -0
  71. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/utils.py +0 -0
  72. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_dbapi/version.py +0 -0
  73. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/__init__.py +0 -0
  74. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/_helpers.py +0 -0
  75. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/_opentelemetry_tracing.py +0 -0
  76. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/backup.py +0 -0
  77. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/batch.py +0 -0
  78. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/client.py +0 -0
  79. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/data_types.py +0 -0
  80. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/database.py +0 -0
  81. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/database_sessions_manager.py +0 -0
  82. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/gapic_metadata.json +0 -0
  83. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/instance.py +0 -0
  84. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/keyset.py +0 -0
  85. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/merged_result_set.py +0 -0
  86. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/metrics/constants.py +0 -0
  87. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/metrics/metrics_capture.py +0 -0
  88. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/metrics/metrics_exporter.py +0 -0
  89. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/metrics/metrics_interceptor.py +0 -0
  90. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/metrics/metrics_tracer.py +0 -0
  91. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/metrics/metrics_tracer_factory.py +0 -0
  92. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/metrics/spanner_metrics_tracer_factory.py +0 -0
  93. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/param_types.py +0 -0
  94. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/pool.py +0 -0
  95. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/py.typed +0 -0
  96. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/request_id_header.py +0 -0
  97. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/__init__.py +0 -0
  98. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/__init__.py +0 -0
  99. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/async_client.py +0 -0
  100. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/client.py +0 -0
  101. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/pagers.py +0 -0
  102. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/transports/__init__.py +0 -0
  103. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/transports/base.py +0 -0
  104. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/transports/grpc.py +0 -0
  105. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py +0 -0
  106. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/transports/rest.py +0 -0
  107. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/services/spanner/transports/rest_base.py +0 -0
  108. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/session.py +0 -0
  109. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/streamed.py +0 -0
  110. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/table.py +0 -0
  111. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/testing/__init__.py +0 -0
  112. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/testing/database_test.py +0 -0
  113. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/testing/interceptors.py +0 -0
  114. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/testing/mock_database_admin.py +0 -0
  115. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/testing/mock_spanner.py +0 -0
  116. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/testing/spanner_database_admin_pb2_grpc.py +0 -0
  117. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/testing/spanner_pb2_grpc.py +0 -0
  118. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/__init__.py +0 -0
  119. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/change_stream.py +0 -0
  120. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/commit_response.py +0 -0
  121. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/keys.py +0 -0
  122. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/mutation.py +0 -0
  123. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/query_plan.py +0 -0
  124. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/result_set.py +0 -0
  125. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/spanner.py +0 -0
  126. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/transaction.py +0 -0
  127. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google/cloud/spanner_v1/types/type.py +0 -0
  128. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google_cloud_spanner.egg-info/SOURCES.txt +0 -0
  129. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google_cloud_spanner.egg-info/dependency_links.txt +0 -0
  130. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google_cloud_spanner.egg-info/not-zip-safe +0 -0
  131. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google_cloud_spanner.egg-info/requires.txt +0 -0
  132. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/google_cloud_spanner.egg-info/top_level.txt +0 -0
  133. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/setup.cfg +0 -0
  134. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/setup.py +0 -0
  135. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/__init__.py +0 -0
  136. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/_builders.py +0 -0
  137. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/_fixtures.py +0 -0
  138. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/_helpers.py +0 -0
  139. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/__init__.py +0 -0
  140. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/test_aborted_transaction.py +0 -0
  141. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/test_basics.py +0 -0
  142. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/test_dbapi_autocommit.py +0 -0
  143. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/test_dbapi_isolation_level.py +0 -0
  144. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/mockserver_tests/test_tags.py +0 -0
  145. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/__init__.py +0 -0
  146. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/_helpers.py +0 -0
  147. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/_sample_data.py +0 -0
  148. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/conftest.py +0 -0
  149. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_backup_api.py +0 -0
  150. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_dbapi.py +0 -0
  151. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_instance_api.py +0 -0
  152. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_observability_options.py +0 -0
  153. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_streaming_chunking.py +0 -0
  154. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/test_table_api.py +0 -0
  155. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/testdata/descriptors.pb +0 -0
  156. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/testdata/singer.proto +0 -0
  157. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/testdata/singer_pb2.py +0 -0
  158. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/utils/__init__.py +0 -0
  159. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/utils/clear_streaming.py +0 -0
  160. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/utils/populate_streaming.py +0 -0
  161. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/utils/scrub_instances.py +0 -0
  162. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/system/utils/streaming_utils.py +0 -0
  163. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/__init__.py +0 -0
  164. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/gapic/__init__.py +0 -0
  165. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/gapic/spanner_admin_database_v1/__init__.py +0 -0
  166. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py +0 -0
  167. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/gapic/spanner_admin_instance_v1/__init__.py +0 -0
  168. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py +0 -0
  169. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/gapic/spanner_v1/__init__.py +0 -0
  170. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/gapic/spanner_v1/test_spanner.py +0 -0
  171. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/__init__.py +0 -0
  172. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test__helpers.py +0 -0
  173. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_batch_dml_executor.py +0 -0
  174. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_checksum.py +0 -0
  175. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_client_side_statement_executor.py +0 -0
  176. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_cursor.py +0 -0
  177. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_globals.py +0 -0
  178. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_parse_utils.py +0 -0
  179. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_parser.py +0 -0
  180. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_transaction_helper.py +0 -0
  181. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_types.py +0 -0
  182. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/spanner_dbapi/test_utils.py +0 -0
  183. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/streaming-read-acceptance-test.json +0 -0
  184. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test__helpers.py +0 -0
  185. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test__opentelemetry_tracing.py +0 -0
  186. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_atomic_counter.py +0 -0
  187. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_backup.py +0 -0
  188. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_batch.py +0 -0
  189. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_client.py +0 -0
  190. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_database.py +0 -0
  191. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_database_session_manager.py +0 -0
  192. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_datatypes.py +0 -0
  193. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_instance.py +0 -0
  194. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_keyset.py +0 -0
  195. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_metrics.py +0 -0
  196. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_metrics_capture.py +0 -0
  197. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_metrics_exporter.py +0 -0
  198. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_metrics_interceptor.py +0 -0
  199. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_metrics_tracer.py +0 -0
  200. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_metrics_tracer_factory.py +0 -0
  201. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_packaging.py +0 -0
  202. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_param_types.py +0 -0
  203. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_pool.py +0 -0
  204. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_session.py +0 -0
  205. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_spanner.py +0 -0
  206. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_spanner_metrics_tracer_factory.py +0 -0
  207. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_streamed.py +0 -0
  208. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/test_table.py +0 -0
  209. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/testdata/singer.proto +0 -0
  210. {google_cloud_spanner-3.56.0 → google_cloud_spanner-3.57.0}/tests/unit/testdata/singer_pb2.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-cloud-spanner
3
- Version: 3.56.0
3
+ Version: 3.57.0
4
4
  Summary: Google Cloud Spanner API client library
5
5
  Home-page: https://github.com/googleapis/python-spanner
6
6
  Author: Google LLC
@@ -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.56.0" # {x-release-please-version}
16
+ __version__ = "3.57.0" # {x-release-please-version}
@@ -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.56.0" # {x-release-please-version}
16
+ __version__ = "3.57.0" # {x-release-please-version}
@@ -819,8 +819,9 @@ def connect(
819
819
  instance = client.instance(instance_id)
820
820
  database = None
821
821
  if database_id:
822
+ logger = kwargs.get("logger")
822
823
  database = instance.database(
823
- database_id, pool=pool, database_role=database_role
824
+ database_id, pool=pool, database_role=database_role, logger=logger
824
825
  )
825
826
  conn = Connection(instance, database, **kwargs)
826
827
  if pool is not None:
@@ -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.56.0" # {x-release-please-version}
16
+ __version__ = "3.57.0" # {x-release-please-version}
@@ -133,7 +133,11 @@ def _restart_on_unavailable(
133
133
  # Update the transaction from the response.
134
134
  if transaction is not None:
135
135
  transaction._update_for_result_set_pb(item)
136
- if item.precommit_token is not None and transaction is not None:
136
+ if (
137
+ item._pb is not None
138
+ and item._pb.HasField("precommit_token")
139
+ and transaction is not None
140
+ ):
137
141
  transaction._update_for_precommit_token_pb(item.precommit_token)
138
142
 
139
143
  if item.resume_token:
@@ -1029,7 +1033,7 @@ class _SnapshotBase(_SessionWrapper):
1029
1033
  if self._transaction_id is None and transaction_pb.id:
1030
1034
  self._transaction_id = transaction_pb.id
1031
1035
 
1032
- if transaction_pb.precommit_token:
1036
+ if transaction_pb._pb.HasField("precommit_token"):
1033
1037
  self._update_for_precommit_token_pb_unsafe(transaction_pb.precommit_token)
1034
1038
 
1035
1039
  def _update_for_precommit_token_pb(
@@ -328,14 +328,20 @@ class Transaction(_SnapshotBase, _BatchBase):
328
328
  # successfully commit, and must be retried with the new precommit token.
329
329
  # The mutations should not be included in the new request, and no further
330
330
  # retries or exception handling should be performed.
331
- if commit_response_pb.precommit_token:
331
+ if commit_response_pb._pb.HasField("precommit_token"):
332
332
  add_span_event(span, commit_retry_event_name)
333
+ nth_request = database._next_nth_request
333
334
  commit_response_pb = api.commit(
334
335
  request=CommitRequest(
335
336
  precommit_token=commit_response_pb.precommit_token,
336
337
  **common_commit_request_args,
337
338
  ),
338
- metadata=metadata,
339
+ metadata=database.metadata_with_request_id(
340
+ nth_request,
341
+ 1,
342
+ metadata,
343
+ span,
344
+ ),
339
345
  )
340
346
 
341
347
  add_span_event(span, "Commit Done")
@@ -521,7 +527,7 @@ class Transaction(_SnapshotBase, _BatchBase):
521
527
  if is_inline_begin:
522
528
  self._lock.release()
523
529
 
524
- if result_set_pb.precommit_token is not None:
530
+ if result_set_pb._pb.HasField("precommit_token"):
525
531
  self._update_for_precommit_token_pb(result_set_pb.precommit_token)
526
532
 
527
533
  return result_set_pb.stats.row_count_exact
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-cloud-spanner
3
- Version: 3.56.0
3
+ Version: 3.57.0
4
4
  Summary: Google Cloud Spanner API client library
5
5
  Home-page: https://github.com/googleapis/python-spanner
6
6
  Author: Google LLC
@@ -11,7 +11,7 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
-
14
+ import logging
15
15
  import unittest
16
16
 
17
17
  import grpc
@@ -170,12 +170,15 @@ class MockServerTestBase(unittest.TestCase):
170
170
  spanner_service: SpannerServicer = None
171
171
  database_admin_service: DatabaseAdminServicer = None
172
172
  port: int = None
173
+ logger: logging.Logger = None
173
174
 
174
175
  def __init__(self, *args, **kwargs):
175
176
  super(MockServerTestBase, self).__init__(*args, **kwargs)
176
177
  self._client = None
177
178
  self._instance = None
178
179
  self._database = None
180
+ self.logger = logging.getLogger("MockServerTestBase")
181
+ self.logger.setLevel(logging.WARN)
179
182
 
180
183
  @classmethod
181
184
  def setup_class(cls):
@@ -227,6 +230,7 @@ class MockServerTestBase(unittest.TestCase):
227
230
  "test-database",
228
231
  pool=FixedSizePool(size=10),
229
232
  enable_interceptors_in_tests=True,
233
+ logger=self.logger,
230
234
  )
231
235
  return self._database
232
236
 
@@ -227,10 +227,6 @@ class TestRequestIDHeader(MockServerTestBase):
227
227
  (1, REQ_RAND_PROCESS_ID, NTH_CLIENT, CHANNEL_ID, exec_sql_seq, 1),
228
228
  )
229
229
  ]
230
- print(f"Filtered unary segments: {filtered_unary_segments}")
231
- print(f"Want unary segments: {want_unary_segments}")
232
- print(f"Got stream segments: {got_stream_segments}")
233
- print(f"Want stream segments: {want_stream_segments}")
234
230
  assert all(seg in filtered_unary_segments for seg in want_unary_segments)
235
231
  assert got_stream_segments == want_stream_segments
236
232
 
@@ -269,8 +265,6 @@ class TestRequestIDHeader(MockServerTestBase):
269
265
  (1, REQ_RAND_PROCESS_ID, NTH_CLIENT, CHANNEL_ID, exec_sql_seq, 1),
270
266
  )
271
267
  ]
272
- print(f"Got stream segments: {got_stream_segments}")
273
- print(f"Want stream segments: {want_stream_segments}")
274
268
  assert got_stream_segments == want_stream_segments
275
269
 
276
270
  def test_streaming_retryable_error(self):
@@ -569,7 +569,10 @@ def test_db_run_in_transaction_then_snapshot_execute_sql(shared_database):
569
569
  batch.delete(sd.TABLE, sd.ALL)
570
570
 
571
571
  def _unit_of_work(transaction, test):
572
- rows = list(transaction.read(test.TABLE, test.COLUMNS, sd.ALL))
572
+ # TODO: Remove query and execute a read instead when the Emulator has been fixed
573
+ # and returns pre-commit tokens for streaming read results.
574
+ rows = list(transaction.execute_sql(sd.SQL))
575
+ # rows = list(transaction.read(test.TABLE, test.COLUMNS, sd.ALL))
573
576
  assert rows == []
574
577
 
575
578
  transaction.insert_or_update(test.TABLE, test.COLUMNS, test.ROW_DATA)
@@ -882,7 +885,10 @@ def test_db_run_in_transaction_w_max_commit_delay(shared_database):
882
885
  batch.delete(sd.TABLE, sd.ALL)
883
886
 
884
887
  def _unit_of_work(transaction, test):
885
- rows = list(transaction.read(test.TABLE, test.COLUMNS, sd.ALL))
888
+ # TODO: Remove query and execute a read instead when the Emulator has been fixed
889
+ # and returns pre-commit tokens for streaming read results.
890
+ rows = list(transaction.execute_sql(sd.SQL))
891
+ # rows = list(transaction.read(test.TABLE, test.COLUMNS, sd.ALL))
886
892
  assert rows == []
887
893
 
888
894
  transaction.insert_or_update(test.TABLE, test.COLUMNS, test.ROW_DATA)
@@ -932,6 +932,8 @@ def test_transaction_read_and_insert_then_exception(sessions_database):
932
932
  def test_transaction_read_and_insert_or_update_then_commit(
933
933
  sessions_database,
934
934
  sessions_to_delete,
935
+ # TODO: Re-enable when the emulator returns pre-commit tokens for reads.
936
+ not_emulator,
935
937
  ):
936
938
  # [START spanner_test_dml_read_your_writes]
937
939
  sd = _sample_data
@@ -1586,7 +1588,11 @@ def _read_w_concurrent_update(transaction, pkey):
1586
1588
  transaction.update(COUNTERS_TABLE, COUNTERS_COLUMNS, [[pkey, value + 1]])
1587
1589
 
1588
1590
 
1589
- def test_transaction_read_w_concurrent_updates(sessions_database):
1591
+ def test_transaction_read_w_concurrent_updates(
1592
+ sessions_database,
1593
+ # TODO: Re-enable when the Emulator returns pre-commit tokens for streaming reads.
1594
+ not_emulator,
1595
+ ):
1590
1596
  pkey = "read_w_concurrent_updates"
1591
1597
  _transaction_concurrency_helper(sessions_database, _read_w_concurrent_update, pkey)
1592
1598
 
@@ -59,7 +59,7 @@ class Test_connect(unittest.TestCase):
59
59
 
60
60
  self.assertIs(connection.database, database)
61
61
  instance.database.assert_called_once_with(
62
- DATABASE, pool=None, database_role=None
62
+ DATABASE, pool=None, database_role=None, logger=None
63
63
  )
64
64
  # Database constructs its own pool
65
65
  self.assertIsNotNone(connection.database._pool)
@@ -107,7 +107,7 @@ class Test_connect(unittest.TestCase):
107
107
 
108
108
  self.assertIs(connection.database, database)
109
109
  instance.database.assert_called_once_with(
110
- DATABASE, pool=pool, database_role=role
110
+ DATABASE, pool=pool, database_role=role, logger=None
111
111
  )
112
112
 
113
113
  def test_w_credential_file_path(self, mock_client):
@@ -888,8 +888,9 @@ class _Instance(object):
888
888
  pool=None,
889
889
  database_dialect=DatabaseDialect.GOOGLE_STANDARD_SQL,
890
890
  database_role=None,
891
+ logger=None,
891
892
  ):
892
- return _Database(database_id, pool, database_dialect, database_role)
893
+ return _Database(database_id, pool, database_dialect, database_role, logger)
893
894
 
894
895
 
895
896
  class _Database(object):
@@ -899,8 +900,10 @@ class _Database(object):
899
900
  pool=None,
900
901
  database_dialect=DatabaseDialect.GOOGLE_STANDARD_SQL,
901
902
  database_role=None,
903
+ logger=None,
902
904
  ):
903
905
  self.name = database_id
904
906
  self.pool = pool
905
907
  self.database_dialect = database_dialect
906
908
  self.database_role = database_role
909
+ self.logger = logger
@@ -158,6 +158,7 @@ class Test_restart_on_unavailable(OpenTelemetryBase):
158
158
  resume_token=resume_token,
159
159
  metadata=metadata,
160
160
  precommit_token=None,
161
+ _pb=None,
161
162
  spec=["value", "resume_token", "metadata", "precommit_token"],
162
163
  )
163
164
 
@@ -533,7 +533,7 @@ class TestTransaction(OpenTelemetryBase):
533
533
  )
534
534
  commit.assert_any_call(
535
535
  request=expected_retry_request,
536
- metadata=base_metadata,
536
+ metadata=expected_retry_metadata,
537
537
  )
538
538
 
539
539
  if not HAS_OPENTELEMETRY_INSTALLED: