diff --git a/airflow/models/errors.py b/airflow/models/errors.py index f891b03d67a15..403b0cd018a42 100644 --- a/airflow/models/errors.py +++ b/airflow/models/errors.py @@ -17,11 +17,8 @@ # under the License. from __future__ import annotations -import warnings - from sqlalchemy import Column, Integer, String, Text -from airflow.exceptions import RemovedInAirflow3Warning from airflow.models.base import Base from airflow.utils.sqlalchemy import UtcDateTime @@ -35,17 +32,3 @@ class ParseImportError(Base): filename = Column(String(1024)) stacktrace = Column(Text) processor_subdir = Column(String(2000), nullable=True) - - -def __getattr__(name: str): - # PEP-562: Lazy loaded attributes on python modules - if name == "ImportError": - warnings.warn( - f"Model class '{__name__}.ImportError' is deprecated due to shadowing with builtin exception " - f"ImportError and will be removed in the future. " - f"Please consider to use '{__name__}.ParseImportError' instead.", - RemovedInAirflow3Warning, - stacklevel=2, - ) - return ParseImportError - raise AttributeError(f"module {__name__} has no attribute {name}") diff --git a/newsfragments/41779.significant.rst b/newsfragments/41779.significant.rst new file mode 100644 index 0000000000000..f25e0c9080a5a --- /dev/null +++ b/newsfragments/41779.significant.rst @@ -0,0 +1 @@ +Remove deprecated support for ``airflow.models.errors.ImportError`` which has been renamed to ``ParseImportError``. diff --git a/tests/test_utils/compat.py b/tests/test_utils/compat.py index b5e876a626add..b09973903b4e2 100644 --- a/tests/test_utils/compat.py +++ b/tests/test_utils/compat.py @@ -36,7 +36,7 @@ # all providers are updated to airflow 2.10+. from airflow.models.errors import ParseImportError except ImportError: - from airflow.models.errors import ImportError as ParseImportError # type: ignore[no-redef] + from airflow.models.errors import ImportError as ParseImportError # type: ignore[no-redef,attr-defined] from airflow import __version__ as airflow_version