GoogleCloudPlatform / GoogleCloudPlatform/cloud-sql-python-connector

Consider `AsyncConnector` object for async interface

Đang mở
#687 2 bình luận 2 reaction 1 người được giao Được giao cho @kgala2 Xem trên GitHub
priority: p2 type: feature request
Ngôn ngữ chính
Python
Star
344
Fork
89
Merge trung bình
5 giờ 33 phút
Pull request đã merge (30 ngày)
2

Mô tả

### 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_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.