]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Added overloads to `MetaData.reflect()` method.
authorFrancisco Del Roio <francipvb@hotmail.com>
Tue, 26 Mar 2024 23:22:16 +0000 (20:22 -0300)
committerFrancisco Del Roio <francipvb@hotmail.com>
Tue, 26 Mar 2024 23:40:18 +0000 (20:40 -0300)
Fixes: #11200
lib/sqlalchemy/sql/schema.py
test/typing/plain_files/ext/asyncio/engines.py

index 8436aac434185addce0b6afc0dc6758cac788d0f..99bc2120003ae73923ccb696f37419d0a9c3d979 100644 (file)
@@ -5687,6 +5687,36 @@ class MetaData(HasSchemaAttr):
             sorted(self.tables.values(), key=lambda t: t.key)  # type: ignore
         )
 
+    @overload
+    def reflect(
+        self,
+        bind: Engine,
+        schema: Optional[str] = ...,
+        views: bool = ...,
+        only: Union[
+            _typing_Sequence[str], Callable[[str, MetaData], bool], None
+        ] = ...,
+        extend_existing: bool = ...,
+        autoload_replace: bool = ...,
+        resolve_fks: bool = ...,
+        **dialect_kwargs: Any,
+    ) -> None: ...
+
+    @overload
+    def reflect(
+        self,
+        bind: Connection,
+        schema: Optional[str] = ...,
+        views: bool = ...,
+        only: Union[
+            _typing_Sequence[str], Callable[[str, MetaData], bool], None
+        ] = ...,
+        extend_existing: bool = ...,
+        autoload_replace: bool = ...,
+        resolve_fks: bool = ...,
+        **dialect_kwargs: Any,
+    ) -> None: ...
+
     @util.preload_module("sqlalchemy.engine.reflection")
     def reflect(
         self,
index df4b0a0f645aef26cebf647db94bd06c6ab9bfe8..4e147d2369ad204c37ac4e85ded81aabf3397b87 100644 (file)
@@ -1,6 +1,7 @@
 from typing import Any
 
 from sqlalchemy import Connection
+from sqlalchemy import MetaData
 from sqlalchemy import select
 from sqlalchemy import text
 from sqlalchemy.ext.asyncio import create_async_engine
@@ -71,3 +72,8 @@ async def asyncio() -> None:
     ce.statement
     cc = select(1).compile(conn)
     cc.statement
+
+    async with e.connect() as conn:
+        metadata = MetaData()
+
+        await conn.run_sync(metadata.reflect)