google-cloud-spanner 3.50.0__tar.gz → 3.50.1__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 (176) hide show
  1. {google_cloud_spanner-3.50.0/google_cloud_spanner.egg-info → google_cloud_spanner-3.50.1}/PKG-INFO +1 -1
  2. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/gapic_version.py +1 -1
  3. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/gapic_version.py +1 -1
  4. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/data_types.py +15 -0
  5. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/gapic_version.py +1 -1
  6. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1/google_cloud_spanner.egg-info}/PKG-INFO +1 -1
  7. google_cloud_spanner-3.50.1/tests/unit/test_datatypes.py +98 -0
  8. google_cloud_spanner-3.50.0/tests/unit/test_datatypes.py +0 -45
  9. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/LICENSE +0 -0
  10. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/MANIFEST.in +0 -0
  11. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/README.rst +0 -0
  12. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner.py +0 -0
  13. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/__init__.py +0 -0
  14. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/gapic_metadata.json +0 -0
  15. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/py.typed +0 -0
  16. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/__init__.py +0 -0
  17. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/__init__.py +0 -0
  18. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/async_client.py +0 -0
  19. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/client.py +0 -0
  20. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/pagers.py +0 -0
  21. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/__init__.py +0 -0
  22. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/base.py +0 -0
  23. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py +0 -0
  24. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py +0 -0
  25. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest.py +0 -0
  26. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest_base.py +0 -0
  27. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/types/__init__.py +0 -0
  28. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/types/backup.py +0 -0
  29. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/types/backup_schedule.py +0 -0
  30. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/types/common.py +0 -0
  31. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py +0 -0
  32. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/__init__.py +0 -0
  33. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/gapic_metadata.json +0 -0
  34. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/py.typed +0 -0
  35. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/__init__.py +0 -0
  36. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/__init__.py +0 -0
  37. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/async_client.py +0 -0
  38. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/client.py +0 -0
  39. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/pagers.py +0 -0
  40. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/__init__.py +0 -0
  41. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/base.py +0 -0
  42. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py +0 -0
  43. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py +0 -0
  44. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest.py +0 -0
  45. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest_base.py +0 -0
  46. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/types/__init__.py +0 -0
  47. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/types/common.py +0 -0
  48. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_admin_instance_v1/types/spanner_instance_admin.py +0 -0
  49. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/__init__.py +0 -0
  50. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/_helpers.py +0 -0
  51. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/batch_dml_executor.py +0 -0
  52. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/checksum.py +0 -0
  53. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/client_side_statement_executor.py +0 -0
  54. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/client_side_statement_parser.py +0 -0
  55. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/connection.py +0 -0
  56. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/cursor.py +0 -0
  57. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/exceptions.py +0 -0
  58. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/parse_utils.py +0 -0
  59. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/parsed_statement.py +0 -0
  60. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/parser.py +0 -0
  61. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/partition_helper.py +0 -0
  62. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/transaction_helper.py +0 -0
  63. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/types.py +0 -0
  64. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/utils.py +0 -0
  65. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_dbapi/version.py +0 -0
  66. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/__init__.py +0 -0
  67. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/_helpers.py +0 -0
  68. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/_opentelemetry_tracing.py +0 -0
  69. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/backup.py +0 -0
  70. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/batch.py +0 -0
  71. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/client.py +0 -0
  72. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/database.py +0 -0
  73. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/gapic_metadata.json +0 -0
  74. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/instance.py +0 -0
  75. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/keyset.py +0 -0
  76. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/merged_result_set.py +0 -0
  77. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/param_types.py +0 -0
  78. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/pool.py +0 -0
  79. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/py.typed +0 -0
  80. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/__init__.py +0 -0
  81. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/__init__.py +0 -0
  82. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/async_client.py +0 -0
  83. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/client.py +0 -0
  84. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/pagers.py +0 -0
  85. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/transports/__init__.py +0 -0
  86. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/transports/base.py +0 -0
  87. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/transports/grpc.py +0 -0
  88. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py +0 -0
  89. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/transports/rest.py +0 -0
  90. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/services/spanner/transports/rest_base.py +0 -0
  91. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/session.py +0 -0
  92. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/snapshot.py +0 -0
  93. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/streamed.py +0 -0
  94. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/table.py +0 -0
  95. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/testing/database_test.py +0 -0
  96. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/testing/interceptors.py +0 -0
  97. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/transaction.py +0 -0
  98. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/__init__.py +0 -0
  99. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/commit_response.py +0 -0
  100. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/keys.py +0 -0
  101. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/mutation.py +0 -0
  102. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/query_plan.py +0 -0
  103. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/result_set.py +0 -0
  104. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/spanner.py +0 -0
  105. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/transaction.py +0 -0
  106. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google/cloud/spanner_v1/types/type.py +0 -0
  107. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google_cloud_spanner.egg-info/SOURCES.txt +0 -0
  108. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google_cloud_spanner.egg-info/dependency_links.txt +0 -0
  109. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google_cloud_spanner.egg-info/not-zip-safe +0 -0
  110. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google_cloud_spanner.egg-info/requires.txt +0 -0
  111. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/google_cloud_spanner.egg-info/top_level.txt +0 -0
  112. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/setup.cfg +0 -0
  113. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/setup.py +0 -0
  114. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/__init__.py +0 -0
  115. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/_fixtures.py +0 -0
  116. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/_helpers.py +0 -0
  117. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/__init__.py +0 -0
  118. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/_helpers.py +0 -0
  119. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/_sample_data.py +0 -0
  120. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/conftest.py +0 -0
  121. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/test_backup_api.py +0 -0
  122. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/test_database_api.py +0 -0
  123. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/test_dbapi.py +0 -0
  124. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/test_instance_api.py +0 -0
  125. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/test_session_api.py +0 -0
  126. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/test_streaming_chunking.py +0 -0
  127. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/test_table_api.py +0 -0
  128. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/testdata/descriptors.pb +0 -0
  129. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/testdata/singer.proto +0 -0
  130. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/testdata/singer_pb2.py +0 -0
  131. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/utils/__init__.py +0 -0
  132. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/utils/clear_streaming.py +0 -0
  133. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/utils/populate_streaming.py +0 -0
  134. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/utils/scrub_instances.py +0 -0
  135. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/system/utils/streaming_utils.py +0 -0
  136. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/__init__.py +0 -0
  137. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/gapic/__init__.py +0 -0
  138. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/gapic/spanner_admin_database_v1/__init__.py +0 -0
  139. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/gapic/spanner_admin_database_v1/test_database_admin.py +0 -0
  140. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/gapic/spanner_admin_instance_v1/__init__.py +0 -0
  141. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/gapic/spanner_admin_instance_v1/test_instance_admin.py +0 -0
  142. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/gapic/spanner_v1/__init__.py +0 -0
  143. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/gapic/spanner_v1/test_spanner.py +0 -0
  144. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/__init__.py +0 -0
  145. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test__helpers.py +0 -0
  146. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_batch_dml_executor.py +0 -0
  147. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_checksum.py +0 -0
  148. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_connect.py +0 -0
  149. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_connection.py +0 -0
  150. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_cursor.py +0 -0
  151. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_globals.py +0 -0
  152. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_parse_utils.py +0 -0
  153. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_parser.py +0 -0
  154. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_transaction_helper.py +0 -0
  155. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_types.py +0 -0
  156. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/spanner_dbapi/test_utils.py +0 -0
  157. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/streaming-read-acceptance-test.json +0 -0
  158. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test__helpers.py +0 -0
  159. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test__opentelemetry_tracing.py +0 -0
  160. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_backup.py +0 -0
  161. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_batch.py +0 -0
  162. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_client.py +0 -0
  163. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_database.py +0 -0
  164. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_instance.py +0 -0
  165. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_keyset.py +0 -0
  166. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_packaging.py +0 -0
  167. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_param_types.py +0 -0
  168. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_pool.py +0 -0
  169. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_session.py +0 -0
  170. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_snapshot.py +0 -0
  171. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_spanner.py +0 -0
  172. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_streamed.py +0 -0
  173. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_table.py +0 -0
  174. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/test_transaction.py +0 -0
  175. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/testdata/singer.proto +0 -0
  176. {google_cloud_spanner-3.50.0 → google_cloud_spanner-3.50.1}/tests/unit/testdata/singer_pb2.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: google-cloud-spanner
3
- Version: 3.50.0
3
+ Version: 3.50.1
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.50.0" # {x-release-please-version}
16
+ __version__ = "3.50.1" # {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.50.0" # {x-release-please-version}
16
+ __version__ = "3.50.1" # {x-release-please-version}
@@ -31,6 +31,7 @@ class JsonObject(dict):
31
31
  def __init__(self, *args, **kwargs):
32
32
  self._is_null = (args, kwargs) == ((), {}) or args == (None,)
33
33
  self._is_array = len(args) and isinstance(args[0], (list, tuple))
34
+ self._is_scalar_value = len(args) == 1 and not isinstance(args[0], (list, dict))
34
35
 
35
36
  # if the JSON object is represented with an array,
36
37
  # the value is contained separately
@@ -38,10 +39,18 @@ class JsonObject(dict):
38
39
  self._array_value = args[0]
39
40
  return
40
41
 
42
+ # If it's a scalar value, set _simple_value and return early
43
+ if self._is_scalar_value:
44
+ self._simple_value = args[0]
45
+ return
46
+
41
47
  if len(args) and isinstance(args[0], JsonObject):
42
48
  self._is_array = args[0]._is_array
49
+ self._is_scalar_value = args[0]._is_scalar_value
43
50
  if self._is_array:
44
51
  self._array_value = args[0]._array_value
52
+ elif self._is_scalar_value:
53
+ self._simple_value = args[0]._simple_value
45
54
 
46
55
  if not self._is_null:
47
56
  super(JsonObject, self).__init__(*args, **kwargs)
@@ -50,6 +59,9 @@ class JsonObject(dict):
50
59
  if self._is_array:
51
60
  return str(self._array_value)
52
61
 
62
+ if self._is_scalar_value:
63
+ return str(self._simple_value)
64
+
53
65
  return super(JsonObject, self).__repr__()
54
66
 
55
67
  @classmethod
@@ -76,6 +88,9 @@ class JsonObject(dict):
76
88
  if self._is_null:
77
89
  return None
78
90
 
91
+ if self._is_scalar_value:
92
+ return json.dumps(self._simple_value)
93
+
79
94
  if self._is_array:
80
95
  return json.dumps(self._array_value, sort_keys=True, separators=(",", ":"))
81
96
 
@@ -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.50.0" # {x-release-please-version}
16
+ __version__ = "3.50.1" # {x-release-please-version}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: google-cloud-spanner
3
- Version: 3.50.0
3
+ Version: 3.50.1
4
4
  Summary: Google Cloud Spanner API client library
5
5
  Home-page: https://github.com/googleapis/python-spanner
6
6
  Author: Google LLC
@@ -0,0 +1,98 @@
1
+ # Copyright 2024 Google LLC All rights reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ import unittest
17
+
18
+ import json
19
+ from google.cloud.spanner_v1.data_types import JsonObject
20
+
21
+
22
+ class Test_JsonObject_serde(unittest.TestCase):
23
+ def test_w_dict(self):
24
+ data = {"foo": "bar"}
25
+ expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
26
+ data_jsonobject = JsonObject(data)
27
+ self.assertEqual(data_jsonobject.serialize(), expected)
28
+
29
+ def test_w_list_of_dict(self):
30
+ data = [{"foo1": "bar1"}, {"foo2": "bar2"}]
31
+ expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
32
+ data_jsonobject = JsonObject(data)
33
+ self.assertEqual(data_jsonobject.serialize(), expected)
34
+
35
+ def test_w_JsonObject_of_dict(self):
36
+ data = {"foo": "bar"}
37
+ expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
38
+ data_jsonobject = JsonObject(JsonObject(data))
39
+ self.assertEqual(data_jsonobject.serialize(), expected)
40
+
41
+ def test_w_JsonObject_of_list_of_dict(self):
42
+ data = [{"foo1": "bar1"}, {"foo2": "bar2"}]
43
+ expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
44
+ data_jsonobject = JsonObject(JsonObject(data))
45
+ self.assertEqual(data_jsonobject.serialize(), expected)
46
+
47
+ def test_w_simple_float_JsonData(self):
48
+ data = 1.1
49
+ expected = json.dumps(data)
50
+ data_jsonobject = JsonObject(data)
51
+ self.assertEqual(data_jsonobject.serialize(), expected)
52
+
53
+ def test_w_simple_str_JsonData(self):
54
+ data = "foo"
55
+ expected = json.dumps(data)
56
+ data_jsonobject = JsonObject(data)
57
+ self.assertEqual(data_jsonobject.serialize(), expected)
58
+
59
+ def test_w_empty_str_JsonData(self):
60
+ data = ""
61
+ expected = json.dumps(data)
62
+ data_jsonobject = JsonObject(data)
63
+ self.assertEqual(data_jsonobject.serialize(), expected)
64
+
65
+ def test_w_None_JsonData(self):
66
+ data = None
67
+ data_jsonobject = JsonObject(data)
68
+ self.assertEqual(data_jsonobject.serialize(), None)
69
+
70
+ def test_w_list_of_simple_JsonData(self):
71
+ data = [1.1, "foo"]
72
+ expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
73
+ data_jsonobject = JsonObject(data)
74
+ self.assertEqual(data_jsonobject.serialize(), expected)
75
+
76
+ def test_w_empty_list(self):
77
+ data = []
78
+ expected = json.dumps(data)
79
+ data_jsonobject = JsonObject(data)
80
+ self.assertEqual(data_jsonobject.serialize(), expected)
81
+
82
+ def test_w_empty_dict(self):
83
+ data = [{}]
84
+ expected = json.dumps(data)
85
+ data_jsonobject = JsonObject(data)
86
+ self.assertEqual(data_jsonobject.serialize(), expected)
87
+
88
+ def test_w_JsonObject_of_simple_JsonData(self):
89
+ data = 1.1
90
+ expected = json.dumps(data)
91
+ data_jsonobject = JsonObject(JsonObject(data))
92
+ self.assertEqual(data_jsonobject.serialize(), expected)
93
+
94
+ def test_w_JsonObject_of_list_of_simple_JsonData(self):
95
+ data = [1.1, "foo"]
96
+ expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
97
+ data_jsonobject = JsonObject(JsonObject(data))
98
+ self.assertEqual(data_jsonobject.serialize(), expected)
@@ -1,45 +0,0 @@
1
- # Copyright 2024 Google LLC All rights reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- import unittest
17
-
18
- import json
19
- from google.cloud.spanner_v1.data_types import JsonObject
20
-
21
-
22
- class Test_JsonObject_serde(unittest.TestCase):
23
- def test_w_dict(self):
24
- data = {"foo": "bar"}
25
- expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
26
- data_jsonobject = JsonObject(data)
27
- self.assertEqual(data_jsonobject.serialize(), expected)
28
-
29
- def test_w_list_of_dict(self):
30
- data = [{"foo1": "bar1"}, {"foo2": "bar2"}]
31
- expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
32
- data_jsonobject = JsonObject(data)
33
- self.assertEqual(data_jsonobject.serialize(), expected)
34
-
35
- def test_w_JsonObject_of_dict(self):
36
- data = {"foo": "bar"}
37
- expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
38
- data_jsonobject = JsonObject(JsonObject(data))
39
- self.assertEqual(data_jsonobject.serialize(), expected)
40
-
41
- def test_w_JsonObject_of_list_of_dict(self):
42
- data = [{"foo1": "bar1"}, {"foo2": "bar2"}]
43
- expected = json.dumps(data, sort_keys=True, separators=(",", ":"))
44
- data_jsonobject = JsonObject(JsonObject(data))
45
- self.assertEqual(data_jsonobject.serialize(), expected)