This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 6d322c97f87 Fix SADeprecationWarning when using inspector with 
SQLAlchemy in DbApiHook (#48938)
6d322c97f87 is described below

commit 6d322c97f87c3b347b53c2feec03a9c1a764cfbe
Author: David Blain <[email protected]>
AuthorDate: Mon Apr 28 09:53:12 2025 +0200

    Fix SADeprecationWarning when using inspector with SQLAlchemy in DbApiHook 
(#48938)
    
    * refactor: Use inspect method instead of deprecated Inspector.from_engine
    
    * refactor: Re-organized imports
    
    ---------
    
    Co-authored-by: David Blain <[email protected]>
---
 .../common/sql/src/airflow/providers/common/sql/hooks/sql.py   | 10 +++++-----
 .../common/sql/src/airflow/providers/common/sql/hooks/sql.pyi  |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py 
b/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py
index 8f0c46d52a2..3d75be09652 100644
--- a/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py
+++ b/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.py
@@ -37,8 +37,8 @@ import sqlparse
 from deprecated import deprecated
 from methodtools import lru_cache
 from more_itertools import chunked
-from sqlalchemy import create_engine
-from sqlalchemy.engine import Inspector, make_url
+from sqlalchemy import create_engine, inspect
+from sqlalchemy.engine import make_url
 from sqlalchemy.exc import ArgumentError, NoSuchModuleError
 from typing_extensions import Literal
 
@@ -56,7 +56,7 @@ from airflow.utils.module_loading import import_string
 if TYPE_CHECKING:
     from pandas import DataFrame
     from polars import DataFrame as PolarsDataFrame
-    from sqlalchemy.engine import URL
+    from sqlalchemy.engine import URL, Engine, Inspector
 
     from airflow.models import Connection
     from airflow.providers.openlineage.extractors import OperatorLineage
@@ -307,7 +307,7 @@ class DbApiHook(BaseHook):
             msg = "`sqlalchemy_url` property should be implemented in the 
provider subclass."
         raise NotImplementedError(msg)
 
-    def get_sqlalchemy_engine(self, engine_kwargs=None):
+    def get_sqlalchemy_engine(self, engine_kwargs=None) -> Engine:
         """
         Get an sqlalchemy_engine object.
 
@@ -328,7 +328,7 @@ class DbApiHook(BaseHook):
 
     @property
     def inspector(self) -> Inspector:
-        return Inspector.from_engine(self.get_sqlalchemy_engine())
+        return inspect(self.get_sqlalchemy_engine())
 
     @cached_property
     def dialect_name(self) -> str:
diff --git 
a/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.pyi 
b/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.pyi
index d95daa4d0e9..58919009b91 100644
--- a/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.pyi
+++ b/providers/common/sql/src/airflow/providers/common/sql/hooks/sql.pyi
@@ -38,7 +38,7 @@ from typing import Any, Callable, Protocol, TypeVar, overload
 
 from _typeshed import Incomplete as Incomplete
 from pandas import DataFrame as DataFrame
-from sqlalchemy.engine import URL as URL, Inspector as Inspector
+from sqlalchemy.engine import URL as URL, Engine as Engine, Inspector as 
Inspector
 
 from airflow.hooks.base import BaseHook as BaseHook
 from airflow.models import Connection as Connection
@@ -93,7 +93,7 @@ class DbApiHook(BaseHook):
     def get_uri(self) -> str: ...
     @property
     def sqlalchemy_url(self) -> URL: ...
-    def get_sqlalchemy_engine(self, engine_kwargs: Incomplete | None = None): 
...
+    def get_sqlalchemy_engine(self, engine_kwargs: Incomplete | None = None) 
-> Engine: ...
     @property
     def inspector(self) -> Inspector: ...
     @cached_property

Reply via email to