google-cloud-spanner 3.55.0__py3-none-any.whl

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 (119) hide show
  1. google/cloud/spanner.py +47 -0
  2. google/cloud/spanner_admin_database_v1/__init__.py +146 -0
  3. google/cloud/spanner_admin_database_v1/gapic_metadata.json +418 -0
  4. google/cloud/spanner_admin_database_v1/gapic_version.py +16 -0
  5. google/cloud/spanner_admin_database_v1/py.typed +2 -0
  6. google/cloud/spanner_admin_database_v1/services/__init__.py +15 -0
  7. google/cloud/spanner_admin_database_v1/services/database_admin/__init__.py +22 -0
  8. google/cloud/spanner_admin_database_v1/services/database_admin/async_client.py +4097 -0
  9. google/cloud/spanner_admin_database_v1/services/database_admin/client.py +4602 -0
  10. google/cloud/spanner_admin_database_v1/services/database_admin/pagers.py +989 -0
  11. google/cloud/spanner_admin_database_v1/services/database_admin/transports/__init__.py +38 -0
  12. google/cloud/spanner_admin_database_v1/services/database_admin/transports/base.py +820 -0
  13. google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py +1303 -0
  14. google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py +1688 -0
  15. google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest.py +6512 -0
  16. google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest_base.py +1650 -0
  17. google/cloud/spanner_admin_database_v1/types/__init__.py +144 -0
  18. google/cloud/spanner_admin_database_v1/types/backup.py +1106 -0
  19. google/cloud/spanner_admin_database_v1/types/backup_schedule.py +369 -0
  20. google/cloud/spanner_admin_database_v1/types/common.py +180 -0
  21. google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py +1303 -0
  22. google/cloud/spanner_admin_instance_v1/__init__.py +110 -0
  23. google/cloud/spanner_admin_instance_v1/gapic_metadata.json +343 -0
  24. google/cloud/spanner_admin_instance_v1/gapic_version.py +16 -0
  25. google/cloud/spanner_admin_instance_v1/py.typed +2 -0
  26. google/cloud/spanner_admin_instance_v1/services/__init__.py +15 -0
  27. google/cloud/spanner_admin_instance_v1/services/instance_admin/__init__.py +22 -0
  28. google/cloud/spanner_admin_instance_v1/services/instance_admin/async_client.py +3466 -0
  29. google/cloud/spanner_admin_instance_v1/services/instance_admin/client.py +3881 -0
  30. google/cloud/spanner_admin_instance_v1/services/instance_admin/pagers.py +856 -0
  31. google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/__init__.py +38 -0
  32. google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/base.py +545 -0
  33. google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py +1347 -0
  34. google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py +1539 -0
  35. google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest.py +4834 -0
  36. google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest_base.py +1198 -0
  37. google/cloud/spanner_admin_instance_v1/types/__init__.py +104 -0
  38. google/cloud/spanner_admin_instance_v1/types/common.py +99 -0
  39. google/cloud/spanner_admin_instance_v1/types/spanner_instance_admin.py +2375 -0
  40. google/cloud/spanner_dbapi/__init__.py +93 -0
  41. google/cloud/spanner_dbapi/_helpers.py +113 -0
  42. google/cloud/spanner_dbapi/batch_dml_executor.py +135 -0
  43. google/cloud/spanner_dbapi/checksum.py +80 -0
  44. google/cloud/spanner_dbapi/client_side_statement_executor.py +140 -0
  45. google/cloud/spanner_dbapi/client_side_statement_parser.py +106 -0
  46. google/cloud/spanner_dbapi/connection.py +818 -0
  47. google/cloud/spanner_dbapi/cursor.py +609 -0
  48. google/cloud/spanner_dbapi/exceptions.py +172 -0
  49. google/cloud/spanner_dbapi/parse_utils.py +392 -0
  50. google/cloud/spanner_dbapi/parsed_statement.py +63 -0
  51. google/cloud/spanner_dbapi/parser.py +258 -0
  52. google/cloud/spanner_dbapi/partition_helper.py +41 -0
  53. google/cloud/spanner_dbapi/transaction_helper.py +294 -0
  54. google/cloud/spanner_dbapi/types.py +106 -0
  55. google/cloud/spanner_dbapi/utils.py +147 -0
  56. google/cloud/spanner_dbapi/version.py +20 -0
  57. google/cloud/spanner_v1/__init__.py +154 -0
  58. google/cloud/spanner_v1/_helpers.py +751 -0
  59. google/cloud/spanner_v1/_opentelemetry_tracing.py +165 -0
  60. google/cloud/spanner_v1/backup.py +397 -0
  61. google/cloud/spanner_v1/batch.py +433 -0
  62. google/cloud/spanner_v1/client.py +538 -0
  63. google/cloud/spanner_v1/data_types.py +350 -0
  64. google/cloud/spanner_v1/database.py +1968 -0
  65. google/cloud/spanner_v1/database_sessions_manager.py +249 -0
  66. google/cloud/spanner_v1/gapic_metadata.json +268 -0
  67. google/cloud/spanner_v1/gapic_version.py +16 -0
  68. google/cloud/spanner_v1/instance.py +735 -0
  69. google/cloud/spanner_v1/keyset.py +193 -0
  70. google/cloud/spanner_v1/merged_result_set.py +146 -0
  71. google/cloud/spanner_v1/metrics/constants.py +71 -0
  72. google/cloud/spanner_v1/metrics/metrics_capture.py +75 -0
  73. google/cloud/spanner_v1/metrics/metrics_exporter.py +384 -0
  74. google/cloud/spanner_v1/metrics/metrics_interceptor.py +156 -0
  75. google/cloud/spanner_v1/metrics/metrics_tracer.py +588 -0
  76. google/cloud/spanner_v1/metrics/metrics_tracer_factory.py +328 -0
  77. google/cloud/spanner_v1/metrics/spanner_metrics_tracer_factory.py +172 -0
  78. google/cloud/spanner_v1/param_types.py +110 -0
  79. google/cloud/spanner_v1/pool.py +813 -0
  80. google/cloud/spanner_v1/py.typed +2 -0
  81. google/cloud/spanner_v1/request_id_header.py +64 -0
  82. google/cloud/spanner_v1/services/__init__.py +15 -0
  83. google/cloud/spanner_v1/services/spanner/__init__.py +22 -0
  84. google/cloud/spanner_v1/services/spanner/async_client.py +2205 -0
  85. google/cloud/spanner_v1/services/spanner/client.py +2624 -0
  86. google/cloud/spanner_v1/services/spanner/pagers.py +196 -0
  87. google/cloud/spanner_v1/services/spanner/transports/__init__.py +38 -0
  88. google/cloud/spanner_v1/services/spanner/transports/base.py +520 -0
  89. google/cloud/spanner_v1/services/spanner/transports/grpc.py +911 -0
  90. google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py +1144 -0
  91. google/cloud/spanner_v1/services/spanner/transports/rest.py +3468 -0
  92. google/cloud/spanner_v1/services/spanner/transports/rest_base.py +981 -0
  93. google/cloud/spanner_v1/session.py +631 -0
  94. google/cloud/spanner_v1/session_options.py +133 -0
  95. google/cloud/spanner_v1/snapshot.py +1057 -0
  96. google/cloud/spanner_v1/streamed.py +402 -0
  97. google/cloud/spanner_v1/table.py +181 -0
  98. google/cloud/spanner_v1/testing/__init__.py +0 -0
  99. google/cloud/spanner_v1/testing/database_test.py +121 -0
  100. google/cloud/spanner_v1/testing/interceptors.py +118 -0
  101. google/cloud/spanner_v1/testing/mock_database_admin.py +38 -0
  102. google/cloud/spanner_v1/testing/mock_spanner.py +261 -0
  103. google/cloud/spanner_v1/testing/spanner_database_admin_pb2_grpc.py +1267 -0
  104. google/cloud/spanner_v1/testing/spanner_pb2_grpc.py +882 -0
  105. google/cloud/spanner_v1/transaction.py +747 -0
  106. google/cloud/spanner_v1/types/__init__.py +118 -0
  107. google/cloud/spanner_v1/types/commit_response.py +94 -0
  108. google/cloud/spanner_v1/types/keys.py +248 -0
  109. google/cloud/spanner_v1/types/mutation.py +201 -0
  110. google/cloud/spanner_v1/types/query_plan.py +220 -0
  111. google/cloud/spanner_v1/types/result_set.py +379 -0
  112. google/cloud/spanner_v1/types/spanner.py +1815 -0
  113. google/cloud/spanner_v1/types/transaction.py +818 -0
  114. google/cloud/spanner_v1/types/type.py +288 -0
  115. google_cloud_spanner-3.55.0.dist-info/LICENSE +202 -0
  116. google_cloud_spanner-3.55.0.dist-info/METADATA +318 -0
  117. google_cloud_spanner-3.55.0.dist-info/RECORD +119 -0
  118. google_cloud_spanner-3.55.0.dist-info/WHEEL +5 -0
  119. google_cloud_spanner-3.55.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,318 @@
1
+ Metadata-Version: 2.1
2
+ Name: google-cloud-spanner
3
+ Version: 3.55.0
4
+ Summary: Google Cloud Spanner API client library
5
+ Home-page: https://github.com/googleapis/python-spanner
6
+ Author: Google LLC
7
+ Author-email: googleapis-packages@google.com
8
+ License: Apache 2.0
9
+ Platform: Posix; MacOS X; Windows
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: Apache Software License
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.7
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Operating System :: OS Independent
22
+ Classifier: Topic :: Internet
23
+ Requires-Python: >=3.7
24
+ License-File: LICENSE
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
+ Requires-Dist: google-cloud-core<3.0.0,>=1.4.4
27
+ Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.12.4
28
+ Requires-Dist: proto-plus<2.0.0,>=1.22.0
29
+ Requires-Dist: sqlparse>=0.4.4
30
+ 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: grpc-interceptor>=0.15.4
32
+ Requires-Dist: proto-plus<2.0.0,>=1.22.2; python_version >= "3.11"
33
+ Provides-Extra: libcst
34
+ Requires-Dist: libcst>=0.2.5; extra == "libcst"
35
+ Provides-Extra: tracing
36
+ Requires-Dist: opentelemetry-api>=1.22.0; extra == "tracing"
37
+ Requires-Dist: opentelemetry-sdk>=1.22.0; extra == "tracing"
38
+ Requires-Dist: opentelemetry-semantic-conventions>=0.43b0; extra == "tracing"
39
+ Requires-Dist: opentelemetry-resourcedetector-gcp>=1.8.0a0; extra == "tracing"
40
+ Requires-Dist: google-cloud-monitoring>=2.16.0; extra == "tracing"
41
+ Requires-Dist: mmh3>=4.1.0; extra == "tracing"
42
+
43
+ Python Client for Cloud Spanner
44
+ ===============================
45
+
46
+ |GA| |pypi| |versions|
47
+
48
+ `Cloud Spanner`_ is the world's first fully managed relational database service
49
+ to offer both strong consistency and horizontal scalability for
50
+ mission-critical online transaction processing (OLTP) applications. With Cloud
51
+ Spanner you enjoy all the traditional benefits of a relational database; but
52
+ unlike any other relational database service, Cloud Spanner scales horizontally
53
+ to hundreds or thousands of servers to handle the biggest transactional
54
+ workloads.
55
+
56
+
57
+ - `Client Library Documentation`_
58
+ - `Product Documentation`_
59
+
60
+ .. |GA| image:: https://img.shields.io/badge/support-GA-gold.svg
61
+ :target: https://github.com/googleapis/google-cloud-python/blob/main/README.rst#general-availability
62
+ .. |pypi| image:: https://img.shields.io/pypi/v/google-cloud-spanner.svg
63
+ :target: https://pypi.org/project/google-cloud-spanner/
64
+ .. |versions| image:: https://img.shields.io/pypi/pyversions/google-cloud-spanner.svg
65
+ :target: https://pypi.org/project/google-cloud-spanner/
66
+ .. _Cloud Spanner: https://cloud.google.com/spanner/
67
+ .. _Client Library Documentation: https://cloud.google.com/python/docs/reference/spanner/latest
68
+ .. _Product Documentation: https://cloud.google.com/spanner/docs
69
+
70
+ Quick Start
71
+ -----------
72
+
73
+ In order to use this library, you first need to go through the following steps:
74
+
75
+ 1. `Select or create a Cloud Platform project.`_
76
+ 2. `Enable billing for your project.`_
77
+ 3. `Enable the Google Cloud Spanner API.`_
78
+ 4. `Setup Authentication.`_
79
+
80
+ .. _Select or create a Cloud Platform project.: https://console.cloud.google.com/project
81
+ .. _Enable billing for your project.: https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project
82
+ .. _Enable the Google Cloud Spanner API.: https://cloud.google.com/spanner
83
+ .. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html
84
+
85
+ Installation
86
+ ~~~~~~~~~~~~
87
+
88
+ Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to
89
+ create isolated Python environments. The basic problem it addresses is one of
90
+ dependencies and versions, and indirectly permissions.
91
+
92
+ With `virtualenv`_, it's possible to install this library without needing system
93
+ install permissions, and without clashing with the installed system
94
+ dependencies.
95
+
96
+ .. _`virtualenv`: https://virtualenv.pypa.io/en/latest/
97
+
98
+
99
+ Supported Python Versions
100
+ ^^^^^^^^^^^^^^^^^^^^^^^^^
101
+ Python >= 3.7
102
+
103
+ Deprecated Python Versions
104
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
105
+ Python == 2.7.
106
+ Python == 3.5.
107
+ Python == 3.6.
108
+
109
+
110
+ Mac/Linux
111
+ ^^^^^^^^^
112
+
113
+ .. code-block:: console
114
+
115
+ pip install virtualenv
116
+ virtualenv <your-env>
117
+ source <your-env>/bin/activate
118
+ <your-env>/bin/pip install google-cloud-spanner
119
+
120
+
121
+ Windows
122
+ ^^^^^^^
123
+
124
+ .. code-block:: console
125
+
126
+ pip install virtualenv
127
+ virtualenv <your-env>
128
+ <your-env>\Scripts\activate
129
+ <your-env>\Scripts\pip.exe install google-cloud-spanner
130
+
131
+
132
+ Example Usage
133
+ -------------
134
+
135
+
136
+ Executing Arbitrary SQL in a Transaction
137
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138
+
139
+ Generally, to work with Cloud Spanner, you will want a transaction. The
140
+ preferred mechanism for this is to create a single function, which executes
141
+ as a callback to ``database.run_in_transaction``:
142
+
143
+ .. code:: python
144
+
145
+ # First, define the function that represents a single "unit of work"
146
+ # that should be run within the transaction.
147
+ def update_anniversary(transaction, person_id, unix_timestamp):
148
+ # The query itself is just a string.
149
+ #
150
+ # The use of @parameters is recommended rather than doing your
151
+ # own string interpolation; this provides protections against
152
+ # SQL injection attacks.
153
+ query = """SELECT anniversary FROM people
154
+ WHERE id = @person_id"""
155
+
156
+ # When executing the SQL statement, the query and parameters are sent
157
+ # as separate arguments. When using parameters, you must specify
158
+ # both the parameters themselves and their types.
159
+ row = transaction.execute_sql(
160
+ query=query,
161
+ params={'person_id': person_id},
162
+ param_types={
163
+ 'person_id': types.INT64_PARAM_TYPE,
164
+ },
165
+ ).one()
166
+
167
+ # Now perform an update on the data.
168
+ old_anniversary = row[0]
169
+ new_anniversary = _compute_anniversary(old_anniversary, years)
170
+ transaction.update(
171
+ 'people',
172
+ ['person_id', 'anniversary'],
173
+ [person_id, new_anniversary],
174
+ )
175
+
176
+ # Actually run the `update_anniversary` function in a transaction.
177
+ database.run_in_transaction(update_anniversary,
178
+ person_id=42,
179
+ unix_timestamp=1335020400,
180
+ )
181
+
182
+
183
+ Select records using a Transaction
184
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
185
+
186
+ Once you have a transaction object (such as the first argument sent to
187
+ ``run_in_transaction``), reading data is easy:
188
+
189
+ .. code:: python
190
+
191
+ # Define a SELECT query.
192
+ query = """SELECT e.first_name, e.last_name, p.telephone
193
+ FROM employees as e, phones as p
194
+ WHERE p.employee_id == e.employee_id"""
195
+
196
+ # Execute the query and return results.
197
+ result = transaction.execute_sql(query)
198
+ for row in result.rows:
199
+ print(row)
200
+
201
+
202
+ Insert records using Data Manipulation Language (DML) with a Transaction
203
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
204
+
205
+ Use the ``execute_update()`` method to execute a DML statement:
206
+
207
+ .. code:: python
208
+
209
+ spanner_client = spanner.Client()
210
+ instance = spanner_client.instance(instance_id)
211
+ database = instance.database(database_id)
212
+
213
+ def insert_singers(transaction):
214
+ row_ct = transaction.execute_update(
215
+ "INSERT Singers (SingerId, FirstName, LastName) "
216
+ " VALUES (10, 'Virginia', 'Watson')"
217
+ )
218
+
219
+ print("{} record(s) inserted.".format(row_ct))
220
+
221
+ database.run_in_transaction(insert_singers)
222
+
223
+
224
+ Insert records using Mutations with a Transaction
225
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
226
+
227
+ To add one or more records to a table, use ``insert``:
228
+
229
+ .. code:: python
230
+
231
+ transaction.insert(
232
+ 'citizens',
233
+ columns=['email', 'first_name', 'last_name', 'age'],
234
+ values=[
235
+ ['phred@exammple.com', 'Phred', 'Phlyntstone', 32],
236
+ ['bharney@example.com', 'Bharney', 'Rhubble', 31],
237
+ ],
238
+ )
239
+
240
+
241
+ Update records using Data Manipulation Language (DML) with a Transaction
242
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
243
+
244
+ .. code:: python
245
+
246
+ spanner_client = spanner.Client()
247
+ instance = spanner_client.instance(instance_id)
248
+ database = instance.database(database_id)
249
+
250
+ def update_albums(transaction):
251
+ row_ct = transaction.execute_update(
252
+ "UPDATE Albums "
253
+ "SET MarketingBudget = MarketingBudget * 2 "
254
+ "WHERE SingerId = 1 and AlbumId = 1"
255
+ )
256
+
257
+ print("{} record(s) updated.".format(row_ct))
258
+
259
+ database.run_in_transaction(update_albums)
260
+
261
+
262
+ Update records using Mutations with a Transaction
263
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
264
+
265
+ ``Transaction.update`` updates one or more existing records in a table. Fails
266
+ if any of the records does not already exist.
267
+
268
+ .. code:: python
269
+
270
+ transaction.update(
271
+ 'citizens',
272
+ columns=['email', 'age'],
273
+ values=[
274
+ ['phred@exammple.com', 33],
275
+ ['bharney@example.com', 32],
276
+ ],
277
+ )
278
+
279
+
280
+ Connection API
281
+ --------------
282
+ Connection API represents a wrap-around for Python Spanner API, written in accordance with PEP-249, and provides a simple way of communication with a Spanner database through connection objects:
283
+
284
+ .. code:: python
285
+
286
+ from google.cloud.spanner_dbapi.connection import connect
287
+
288
+ connection = connect("instance-id", "database-id")
289
+ connection.autocommit = True
290
+
291
+ cursor = connection.cursor()
292
+ cursor.execute("SELECT * FROM table_name")
293
+
294
+ result = cursor.fetchall()
295
+
296
+
297
+ If using [fine-grained access controls](https://cloud.google.com/spanner/docs/access-with-fgac) you can pass a ``database_role`` argument to connect as that role:
298
+
299
+ .. code:: python
300
+
301
+ connection = connect("instance-id", "database-id", database_role='your-role')
302
+
303
+
304
+ Aborted Transactions Retry Mechanism
305
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
306
+
307
+ In ``!autocommit`` mode, transactions can be aborted due to transient errors. In most cases retry of an aborted transaction solves the problem. To simplify it, connection tracks SQL statements, executed in the current transaction. In case the transaction aborted, the connection initiates a new one and re-executes all the statements. In the process, the connection checks that retried statements are returning the same results that the original statements did. If results are different, the transaction is dropped, as the underlying data changed, and auto retry is impossible.
308
+
309
+ Auto-retry of aborted transactions is enabled only for ``!autocommit`` mode, as in ``autocommit`` mode transactions are never aborted.
310
+
311
+
312
+ Next Steps
313
+ ~~~~~~~~~~
314
+
315
+ - See the `Client Library Documentation`_ to learn how to connect to Cloud
316
+ Spanner using this Client Library.
317
+ - Read the `Product documentation`_ to learn
318
+ more about the product and see How-to Guides.
@@ -0,0 +1,119 @@
1
+ google/cloud/spanner.py,sha256=jtzrZR-g67zYgr83phOfkwvhgBYdKzRtkpYCKWMoKr0,1562
2
+ google/cloud/spanner_admin_database_v1/__init__.py,sha256=wdQBs2JwKIuZvS4DR3vXKIOUhSU0wS6hAlFg0FCC1Nw,5931
3
+ google/cloud/spanner_admin_database_v1/gapic_metadata.json,sha256=ZrI6qyWdDOT-MeaLXnM3uNpjM03cienmcev49FpiTFo,10528
4
+ google/cloud/spanner_admin_database_v1/gapic_version.py,sha256=scz0Dj8xUIUOdjY18HfATTPHPWs31b3bntF6sSjiJtQ,653
5
+ google/cloud/spanner_admin_database_v1/py.typed,sha256=BxrYCv9QphWZVnT4NV6YZwdCAyDZfHvG7W9xkmUZR3A,96
6
+ google/cloud/spanner_admin_database_v1/services/__init__.py,sha256=ABnBlq63X5TtiLc0JptfQUECNGc-s0WTBlbk0_83qf0,600
7
+ google/cloud/spanner_admin_database_v1/services/database_admin/__init__.py,sha256=aZXIxlO2DQbfgjafYFIHAgyzcMTU8uQlTIXKZYrwgy4,765
8
+ google/cloud/spanner_admin_database_v1/services/database_admin/async_client.py,sha256=UrIzlp71tKS-yiqdBjuuFNCtw8-wZNq4FQuQ8Af8E8s,182687
9
+ google/cloud/spanner_admin_database_v1/services/database_admin/client.py,sha256=Zyff3t9JUYB_9_f4bw0QW9PDfIqHFuIEjqAyHPNsjOc,201545
10
+ google/cloud/spanner_admin_database_v1/services/database_admin/pagers.py,sha256=8bF_ABuhmVASWwpQ07up49Imo8V0c_WauVUHyrfdtjI,41575
11
+ google/cloud/spanner_admin_database_v1/services/database_admin/transports/__init__.py,sha256=2Xnf_bRKXCqTVp15pj295TqE6AfL38QB4U8o8ZO9LR0,1404
12
+ google/cloud/spanner_admin_database_v1/services/database_admin/transports/base.py,sha256=Nn0PDQBoFdJvJqL7hdEKxE5272YbGktlEqzMlgGm3Wk,28783
13
+ google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc.py,sha256=fX_ml0R1XOXyjBm8OlcWUxJLrtyU8Whm7N6OFoH8n4g,58939
14
+ google/cloud/spanner_admin_database_v1/services/database_admin/transports/grpc_asyncio.py,sha256=asXLML-qBrHhbD4iRMSo1PWNpDa7wCEEVpziQ8oZwgQ,74359
15
+ google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest.py,sha256=yek3UyD6GcYjXWXL7WyAKr4twT6GztS4E0oV64ydhis,271331
16
+ google/cloud/spanner_admin_database_v1/services/database_admin/transports/rest_base.py,sha256=hVDMK2SgBLgA486xTHiqsNF5ybx5khwqQesReYwcvbw,58338
17
+ google/cloud/spanner_admin_database_v1/types/__init__.py,sha256=Pg28v-TPYY3EGoqQrDGuX3taUTYpIlL2N2Z9NQ0QXlg,3976
18
+ google/cloud/spanner_admin_database_v1/types/backup.py,sha256=L_ymeAS4BokZBKlzdwd-LTwQN9LYjAa1FokZL-u1fR8,45183
19
+ google/cloud/spanner_admin_database_v1/types/backup_schedule.py,sha256=_jMQv6yKauSUo12C24QGucVh2lA4pp8Y2Xte-cxg8oA,13391
20
+ google/cloud/spanner_admin_database_v1/types/common.py,sha256=xqOYx7Kz08xKglzYXRJSUacPXS_7Z-DMdp2cRsaU4to,6133
21
+ google/cloud/spanner_admin_database_v1/types/spanner_database_admin.py,sha256=Eg7S0zTtv6UtuxIFlglL88srsUWe25aN_HzZ9gxfuuw,49080
22
+ google/cloud/spanner_admin_instance_v1/__init__.py,sha256=75XSugf9dqoAUU3DISYR2Dvn9ujK5vYwbGBpKm0TS7U,4934
23
+ google/cloud/spanner_admin_instance_v1/gapic_metadata.json,sha256=OWxhJ3__X-5H5gkKOreEHrDVl5EsKA2fODf0ZuQiN3I,9091
24
+ google/cloud/spanner_admin_instance_v1/gapic_version.py,sha256=scz0Dj8xUIUOdjY18HfATTPHPWs31b3bntF6sSjiJtQ,653
25
+ google/cloud/spanner_admin_instance_v1/py.typed,sha256=qUSbbKOvJYzyuJ34ektbdk-ZPwZomNqxyGjYMVyBm4o,96
26
+ google/cloud/spanner_admin_instance_v1/services/__init__.py,sha256=ABnBlq63X5TtiLc0JptfQUECNGc-s0WTBlbk0_83qf0,600
27
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/__init__.py,sha256=uwLUx2ABg9Rbi_5vbX2cPwAcnXF2lirJwhA37Pvc5sc,765
28
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/async_client.py,sha256=1XZKf3yxyoemW7ClqZ5qyFIDYzeqtuzMkLyukR0wHJk,155770
29
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/client.py,sha256=BGLsmBcGkmRwaJ7tZIdvUlXR4bFhWRNrL2GRB0IuK9E,171564
30
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/pagers.py,sha256=-isQintXDjHVJVOvjOJ4RaSKdJrqIXZrPd0Lq6iNX3Q,36139
31
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/__init__.py,sha256=XiJM4fsFU_4zNd2aR1qclBOxplcigYSnzFVMwGu1g8w,1404
32
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/base.py,sha256=1PXLZHfEoJPp1i8qFeFETXjxVDjmddVjMrcnUIH3LVU,19315
33
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc.py,sha256=epfNHW9Gtacq0Q2pl1DKcky15v95Gp9hFOgyYNN6Bfs,60323
34
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/grpc_asyncio.py,sha256=4_dTDpvSGs158AVC0tJXeq64b7Bg7MIi-sGHhn7Ze7c,68324
35
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest.py,sha256=x_rxeHm28R8a-zkQa3tyiIhuSy53SNE9ML45NsJ3HuA,204376
36
+ google/cloud/spanner_admin_instance_v1/services/instance_admin/transports/rest_base.py,sha256=jd4mpOsyhhTNwjAKd_ZbHLo_9-1pRo8v3NJ69SbYhwQ,41794
37
+ google/cloud/spanner_admin_instance_v1/types/__init__.py,sha256=dfPeytgbtSxnHFy4npSzTt4IiEM7TGpEbq6h-WW_AyY,3221
38
+ google/cloud/spanner_admin_instance_v1/types/common.py,sha256=witwhGY-8krEJV8WWXa_1n-Etny-paq443_Cqd4NWvc,2896
39
+ google/cloud/spanner_admin_instance_v1/types/spanner_instance_admin.py,sha256=Vf9EqyEMwzgS0qu4h6u3QJLgY90yXAKBgPfYnPpfpOc,91376
40
+ google/cloud/spanner_dbapi/__init__.py,sha256=zo5zOZbGcOAOuMeS3kd5B7Gg1v_a8UyI8TAR1mioDtg,3275
41
+ google/cloud/spanner_dbapi/_helpers.py,sha256=T2pWMNOWudFVUHqqzasjzLjTHEtqo7mcmgOsjEk8600,3525
42
+ google/cloud/spanner_dbapi/batch_dml_executor.py,sha256=PrXxN5N1t7Qg_DCR3oLj0pBpNx7WQtjAvqVxI7uMeXY,4885
43
+ google/cloud/spanner_dbapi/checksum.py,sha256=_GaKK84wOdW5c4Z3BN0xgSnL0p-BzV_ZgYUSZ5jIC3c,2732
44
+ google/cloud/spanner_dbapi/client_side_statement_executor.py,sha256=pRMZ8KpjAC7EOWcNiMjWgNOgoXaH0GmAnc0YiCresZY,5423
45
+ google/cloud/spanner_dbapi/client_side_statement_parser.py,sha256=r5cXxiF9Nkml0ukDWa8MpXsV4y9OeBDwyxVAzzYmYRY,4595
46
+ google/cloud/spanner_dbapi/connection.py,sha256=GmNEEcw2JqVF-Mm6c80Lz75fjjzcx4JbloKqsrztz6M,31034
47
+ google/cloud/spanner_dbapi/cursor.py,sha256=UcvKsiz4nBlF1bC8Y8BoiC2jCk1kQGqvdkE8_oNRmDg,23105
48
+ google/cloud/spanner_dbapi/exceptions.py,sha256=utuaLJY_b0rJGGgz-VCCSAkebEtIrDz385_cIEQiir0,4485
49
+ google/cloud/spanner_dbapi/parse_utils.py,sha256=Ad6zUe65UT1zQnvuMQlopQkcUrDvOCm1RaUbN3I6HGQ,11084
50
+ google/cloud/spanner_dbapi/parsed_statement.py,sha256=ark_zdxWYxcHBWRlHqGwhZuqlzu8eD7suSe9Vge0pmU,1587
51
+ google/cloud/spanner_dbapi/parser.py,sha256=UpRce6Z0k-KCcQ54QFsyz479gYeN1oVOLlzse_FuWRY,6963
52
+ google/cloud/spanner_dbapi/partition_helper.py,sha256=7taroUARnHqwIhVajdQoJTOXPa8uyGswyL-qVsMQ40w,1362
53
+ google/cloud/spanner_dbapi/transaction_helper.py,sha256=iik7XzXZNmg1f-AKm7TvMt2F3vKdCpGgXjQZjfbcgVQ,11925
54
+ google/cloud/spanner_dbapi/types.py,sha256=wLD0HuFo8lloyS-tXraBBNimAx46RXQi1oTWwxjAnOs,3157
55
+ google/cloud/spanner_dbapi/utils.py,sha256=S1EbFuygH03V_IqceQdxQSgkMgCg5jDT0W-CT5Smwww,4500
56
+ google/cloud/spanner_dbapi/version.py,sha256=8oizsT-rAX0mF0DTHglibBRpjuyB5SZICgOgasL66UM,802
57
+ google/cloud/spanner_v1/__init__.py,sha256=J9VphuLKA5Mmce2p_KdZ790OUdlW3gxifX6LDK038uk,5129
58
+ google/cloud/spanner_v1/_helpers.py,sha256=HrKqeNvckblBcSydBPyXTwo87jt7fRMozCjjDJ3WMQ0,24869
59
+ google/cloud/spanner_v1/_opentelemetry_tracing.py,sha256=Lva10_OwnkdsQbsgsiUcKYzpHATVxPxJccx_vhrehDE,6275
60
+ google/cloud/spanner_v1/backup.py,sha256=I7jXEdwRgx3YZHWt5tSSoWoY-1jZLdqCG5GKgyZrW7s,13765
61
+ google/cloud/spanner_v1/batch.py,sha256=k_7VAFB2KQFmNYa-QIuDAXCN2U589jvhaLmnKZ5BvdI,16216
62
+ google/cloud/spanner_v1/client.py,sha256=QRibbEQU9yJKssyHnOlwm6VClcO6IfLBoWPuAAakTsA,21539
63
+ google/cloud/spanner_v1/data_types.py,sha256=2kAjsDNAKDVVS-NLpNzUPT8tZPSvZgXnui9NS4icnhM,11686
64
+ google/cloud/spanner_v1/database.py,sha256=hXtf31MNtKaA4i8x86i8uQQJjsvb-A2lRRI0lbIgrEs,74050
65
+ google/cloud/spanner_v1/database_sessions_manager.py,sha256=ASXo39CmiIuLGK9RuhUgmZteBnusPwQfhuaoM4h3SWM,10429
66
+ google/cloud/spanner_v1/gapic_metadata.json,sha256=MbAZ4OZ9Lm7mUng2FGTS0mZBw_vsmTp1DqF-RqiwwBA,6400
67
+ google/cloud/spanner_v1/gapic_version.py,sha256=scz0Dj8xUIUOdjY18HfATTPHPWs31b3bntF6sSjiJtQ,653
68
+ google/cloud/spanner_v1/instance.py,sha256=LZ5mb7kahZ6JGYCOdE7UZgfLF2gtL_u-PCxD4sRwMgA,27807
69
+ google/cloud/spanner_v1/keyset.py,sha256=hDf7eRo_pDM9OBt-R28xgBezikxh6_OZNIIf-2U27R8,6251
70
+ google/cloud/spanner_v1/merged_result_set.py,sha256=Ajt2Zvd-jevqkoj44fSKztqoXQci9jhL-vAf1W5cYYk,5374
71
+ google/cloud/spanner_v1/param_types.py,sha256=v3l59a2KiUahtRqHijStPm6ANeRgTD3MjIa0UxsPrkU,3996
72
+ google/cloud/spanner_v1/pool.py,sha256=8-XQ74RKfod3rTY5fThKyPHhXkI02IhV8Q7v3jzCd6g,27789
73
+ google/cloud/spanner_v1/py.typed,sha256=0TrB46d7OZCTc-vcmQV5fTpOYIHtt_-zHB67DxHKRmk,81
74
+ google/cloud/spanner_v1/request_id_header.py,sha256=clXYqlUGtJOMr1E1uJcsl3_sxspPck9yb5GLtRVjFJw,1925
75
+ google/cloud/spanner_v1/session.py,sha256=GtS8ZmfvS6NJhFwsbFTLo8m_WHIv4T84c1CHMFBYsTU,24141
76
+ google/cloud/spanner_v1/session_options.py,sha256=iOJXKa63SZTUHtDZ2oa7D31jYnQtZKjMskqzBdj7xLU,5564
77
+ google/cloud/spanner_v1/snapshot.py,sha256=SYuu0eTN9BQ2ktvf6ZiEaNNgFVoI3V6OEPMbtQv3MXQ,40704
78
+ google/cloud/spanner_v1/streamed.py,sha256=Vb3-QQpH513MJfW4NcvSbejlrTEE31o7yYckGhA5i7I,13838
79
+ google/cloud/spanner_v1/table.py,sha256=TSAi6s4B0_D2tx4G-2P9e2x9qN-tl8rznYX2vmYKqsk,5812
80
+ google/cloud/spanner_v1/transaction.py,sha256=M02BazOzihwmU1ZcWF3VNItSifGCnUI7RiVpT2iJrIU,28656
81
+ google/cloud/spanner_v1/metrics/constants.py,sha256=ZYZOXGLu_nuOG7h0Ga44azYUcrjZ-RcfCT-eKwvB2mY,2646
82
+ google/cloud/spanner_v1/metrics/metrics_capture.py,sha256=TN7v48SAY0gR0ZTrmoMqFiW3OMOZriFyE6GQ6SaoNhU,3016
83
+ google/cloud/spanner_v1/metrics/metrics_exporter.py,sha256=AOtLWLq8xDWd1NarqrKdcRHIPhYOnYqkjCh4zHrzRjU,14381
84
+ google/cloud/spanner_v1/metrics/metrics_interceptor.py,sha256=SNJOngIetaoC0blwinz4yp2ksG7zbbk8TyuM-lvDICI,6292
85
+ google/cloud/spanner_v1/metrics/metrics_tracer.py,sha256=DBM1Zgzni3UegwlEUAol0ATKlJlcg3VCV8eY5WM45vU,24187
86
+ google/cloud/spanner_v1/metrics/metrics_tracer_factory.py,sha256=8L-drqsA5KcDSl-8jMHyeu6KiaHpia-WbHvjCMan9as,13598
87
+ google/cloud/spanner_v1/metrics/spanner_metrics_tracer_factory.py,sha256=d1Ir8_oQRbzHbVg-VaamGAT_k6MA67KSGPsFhJZE2bA,6673
88
+ google/cloud/spanner_v1/services/__init__.py,sha256=ABnBlq63X5TtiLc0JptfQUECNGc-s0WTBlbk0_83qf0,600
89
+ google/cloud/spanner_v1/services/spanner/__init__.py,sha256=-UCLTeaa1Jri2FNxBiQaw_Fh5eIzPSbZGrZPoG82NOI,741
90
+ google/cloud/spanner_v1/services/spanner/async_client.py,sha256=RC92gJjg4bAZ6u5kDPdC2oYuR7aQGSgqDTgQlDGPVFg,94844
91
+ google/cloud/spanner_v1/services/spanner/client.py,sha256=SiI54hbOX-IHJ4O_5J_Qy1pSs5amlx7M4-H9u_iT6xc,110815
92
+ google/cloud/spanner_v1/services/spanner/pagers.py,sha256=FnFfI1YOT-9h3BKSianVbELhdbKGcIc4eN1OEXfbc9s,7617
93
+ google/cloud/spanner_v1/services/spanner/transports/__init__.py,sha256=yccbRolKSZZZ6MD5SvM8U67AVr290SvGn_4653iBMMo,1320
94
+ google/cloud/spanner_v1/services/spanner/transports/base.py,sha256=30YJLe3_-C3wPouGONpMHi-8wfgwjWMpBdC7jYZmoDY,18437
95
+ google/cloud/spanner_v1/services/spanner/transports/grpc.py,sha256=21kLzyF9Fz5PMhkanp97IYXCshu_91-oZxWwlPZrqak,40876
96
+ google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py,sha256=l4PXoW_MfwemRzKJlnpqRE5EvX4CYxXnYzaA_nOGllc,50081
97
+ google/cloud/spanner_v1/services/spanner/transports/rest.py,sha256=PRNrYnFmpzYNCvXevBMnadtOpHpos98f71RHMVlyjQ0,140802
98
+ google/cloud/spanner_v1/services/spanner/transports/rest_base.py,sha256=LRQJucV_NuSut7AEy6uJ6s2ffPbswrgvkYpXbdhyJOg,34136
99
+ google/cloud/spanner_v1/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
+ google/cloud/spanner_v1/testing/database_test.py,sha256=XM68aWs3eiJsT0W4i5_KS-JS_5681Mfnhiq7d2sCL6o,4633
101
+ google/cloud/spanner_v1/testing/interceptors.py,sha256=pIu4Obuq5Ipvbif1EFlXUStNUz_Qzmv4HxCfEMsustg,4007
102
+ google/cloud/spanner_v1/testing/mock_database_admin.py,sha256=29iVRFZZE8a_zcXYHG31jRMOs8HFfA7WRQqnwAwKaIM,1436
103
+ google/cloud/spanner_v1/testing/mock_spanner.py,sha256=-yPXpc5n-JEOcNjvED6UaJ-JPix9M81qui_a-E48qfs,10047
104
+ google/cloud/spanner_v1/testing/spanner_database_admin_pb2_grpc.py,sha256=yBJwtrYZVEMBIBuHKqI0gHaEY0_Ue_i9g4HrXo5w41k,51633
105
+ google/cloud/spanner_v1/testing/spanner_pb2_grpc.py,sha256=1LhnR8UZLrU7AnAfpvm084wJ4jTK0Q5Hz60ZBMGM15w,33750
106
+ google/cloud/spanner_v1/types/__init__.py,sha256=h95mO_WEJWzKG3iGc5LAsYTpqIaOBR931KMS_drYGAc,2736
107
+ google/cloud/spanner_v1/types/commit_response.py,sha256=eI7d8pbAt6jhYu-nIi1JZPPXmSDjOisol3526rCotFo,3465
108
+ google/cloud/spanner_v1/types/keys.py,sha256=WOEyBh2DstIMN2Qz6aVY_KXNwwgc8vCku0yEERaPw80,7879
109
+ google/cloud/spanner_v1/types/mutation.py,sha256=aqOpwlUUb9n97_jjro66gvaJCQEfj5qbhUjN7MBTxTU,7691
110
+ google/cloud/spanner_v1/types/query_plan.py,sha256=mtYO4nu_0zi8s63j1pl9Mw2w0nk1d7FG3AkZq3Tw75I,7930
111
+ google/cloud/spanner_v1/types/result_set.py,sha256=5XXfuGftg52WZ-1dwKn1l8veH6PkVCq1h3msGfT9dpA,14987
112
+ google/cloud/spanner_v1/types/spanner.py,sha256=R7cLYP5XpiWRYYmK_eGe0hboiPOpjiyvCwO1AcRVEN4,69023
113
+ google/cloud/spanner_v1/types/transaction.py,sha256=aaoejZDpgM3h4dTCowMyNdNmlVzrgR3XD8d3XwIYmR4,35890
114
+ google/cloud/spanner_v1/types/type.py,sha256=d-bZn0aN945GYqBJjwjNMU4Fq8JOk5wJ71WQ6PAYKd0,11049
115
+ google_cloud_spanner-3.55.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
116
+ google_cloud_spanner-3.55.0.dist-info/METADATA,sha256=xGq3wFoATrXdYbfh0kZBLS4OhZE8zvYI7NiZYc2Pe2I,11156
117
+ google_cloud_spanner-3.55.0.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
118
+ google_cloud_spanner-3.55.0.dist-info/top_level.txt,sha256=_1QvSJIhFAGfxb79D6DhB7SUw2X6T4rwnz_LLrbcD3c,7
119
+ google_cloud_spanner-3.55.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.3.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ google