From 41f1d2b55593813f13a5f43e12f7610ade49a8a0 Mon Sep 17 00:00:00 2001 From: wulan17 Date: Tue, 15 Oct 2024 16:08:58 +0700 Subject: [PATCH] async_pymongo: Allow accessing database and collection as an attribute (#10) Signed-off-by: wulan17 --- async_pymongo/client.py | 3 +++ async_pymongo/db.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/async_pymongo/client.py b/async_pymongo/client.py index 4626eed..ef496d9 100644 --- a/async_pymongo/client.py +++ b/async_pymongo/client.py @@ -69,6 +69,9 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: # Propagate initialization to base super().__init__(dispatch) + def __getattr__(self, name: str) -> AsyncDatabase: + return AsyncDatabase(self, self.dispatch[name]) + def __getitem__(self, name: str) -> AsyncDatabase: return AsyncDatabase(self, self.dispatch[name]) diff --git a/async_pymongo/db.py b/async_pymongo/db.py index 6b96eac..7a12c17 100644 --- a/async_pymongo/db.py +++ b/async_pymongo/db.py @@ -58,6 +58,9 @@ def __init__(self, client: "AsyncClient", database: Database) -> None: def __bool__(self) -> bool: return self.dispatch is not None + def __getattr__(self, name) -> AsyncCollection: + return AsyncCollection(self, name) + def __getitem__(self, name) -> AsyncCollection: return AsyncCollection(self, name)