googleapis / googleapis/google-cloud-python

Provide a complete/high-level async client API

Aperta
#15,918 8 commenti 14 reazioni 1 assegnatario Rivendicata da @larkee Vedi su GitHub
api: spanner
Lingua principale
Python
Stelle
5.4k
Fork
1.8k
Merge medio
3g 4h
PR unite (30g)
122

Descrizione

**Is your feature request related to a problem? Please describe.**
The high-level `spanner.Client` API is all blocking methods. To develop a FastAPI service using Spanner as a datastore it would be good to be able to take advantage of Python's async features and interact with Spanner in an asyncio context.

**Describe the solution you'd like**
Provide a `spanner.AsyncClient` class that mirrors the API of `spanner.Client` but with `async` methods that allow usage in an async context without having to block on IO calls.

**Describe alternatives you've considered**
There is a low-level `AsyncSpannerClient` class that wraps the underlying gRPC API, but making use of this requires re-implementing large parts of the existing `spanner.Client` API and then having to maintain that code separately to the `python-spanner` library - in particular needing to manage session pooling and `ResultSet`/`PartialResultSet` response types, which is frustrating when a lot of this functionality already exists in this library, but only behind a blocking API

**Additional context**
I'm happy to contribute this feature if it is accepted.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.