GoogleCloudPlatform / GoogleCloudPlatform/cloud-sql-python-connector

Consider `AsyncConnector` object for async interface

Ouverte
#687 2 commentaires 2 réactions 1 personne assignée Assignée à @kgala2 Voir sur GitHub
priority: p2 type: feature request
Langage dominant
Python
Étoiles
344
Forks
89
Merge moyen
5 h 33 min
PR mergées (30 j)
2

Description

### Feature Description

Currently the `Connector` object is the main entrypoint for both synchronous and async driver implementations.

The synchronous drivers are called via `connector.connect` while the async drivers via `connector.connect_async` with the synchronous version basically just being a simple wrapper around the async method.

This issue is to keep an eye on considering moving the async drivers to a separate object and entrypoint of `AsyncConnector`.

This would allow for clear distinctions between the two and give flexibility in the interfaces moving forward.

### Sample code

```Python
# current implementation
async def main():
# get current running event loop to be used with Connector
loop = asyncio.get_running_loop()
# intialize Connector object as async context manager
async with Connector(loop=loop) as connector:
# create connection to Cloud SQL database
conn: asyncpg.Connection = await connector.connect_async(
"project:region:instance", # Cloud SQL instance connection name
"asyncpg",
user="my-user",
password="my-password",
db="my-db-name"
# ... additional database driver args
)

# new AsyncConnector object
async def main():
async with AsyncConnector() as connector:
# create connection to Cloud SQL database
conn: asyncpg.Connection = await connector.connect(
"project:region:instance", # Cloud SQL instance connection name
"asyncpg",
user="my-user",
password="my-password",
db="my-db-name"
# ... additional database driver args
)
```

### Alternatives Considered

_No response_

### Additional Details

_No response_

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.