ashb commented on code in PR #54505:
URL: https://github.com/apache/airflow/pull/54505#discussion_r2559462510


##########
airflow-core/src/airflow/exceptions.py:
##########
@@ -518,23 +303,43 @@ def __init__(self, dag_id: str | None = None, message: 
str | None = None):
             super().__init__(f"An unexpected error occurred while trying to 
deserialize Dag '{dag_id}'")
 
 
+class AirflowClearRunningTaskException(AirflowException):
+    """Raise when the user attempts to clear currently running tasks."""
+
+
+_DEPRECATED_EXCEPTIONS = {
+    "AirflowTaskTerminated": "airflow.sdk.exceptions.AirflowTaskTerminated",
+    "DuplicateTaskIdFound": "airflow.sdk.exceptions.DuplicateTaskIdFound",
+    "FailFastDagInvalidTriggerRule": 
"airflow.sdk.exceptions.FailFastDagInvalidTriggerRule",
+    "TaskAlreadyInTaskGroup": "airflow.sdk.exceptions.TaskAlreadyInTaskGroup",
+    "TaskDeferralTimeout": "airflow.sdk.exceptions.TaskDeferralTimeout",
+    "XComNotFound": "airflow.sdk.exceptions.XComNotFound",
+    "DownstreamTasksSkipped": "airflow.sdk.exceptions.DownstreamTasksSkipped",
+    "AirflowSensorTimeout": "airflow.sdk.exceptions.AirflowSensorTimeout",
+    "DagRunTriggerException": "airflow.sdk.exceptions.DagRunTriggerException",
+    "TaskDeferralError": "airflow.sdk.exceptions.TaskDeferralError",
+    "AirflowDagCycleException": 
"airflow.sdk.exceptions.AirflowDagCycleException",
+    "AirflowInactiveAssetInInletOrOutletException": 
"airflow.sdk.exceptions.AirflowInactiveAssetInInletOrOutletException",
+    "AirflowSkipException": "airflow.sdk.exceptions.AirflowSkipException",
+    "AirflowTaskTimeout": "airflow.sdk.exceptions.AirflowTaskTimeout",
+    "AirflowFailException": "airflow.sdk.exceptions.AirflowFailException",
+    "ParamValidationError": "airflow.sdk.exceptions.ParamValidationError",
+    "TaskDeferred": "airflow.sdk.exceptions.TaskDeferred",
+}
+
+
 def __getattr__(name: str):
     """Provide backward compatibility for moved exceptions."""
-    if name == "AirflowDagCycleException":
+    if name in _DEPRECATED_EXCEPTIONS:
         import warnings
 
-        from airflow.sdk.exceptions import AirflowDagCycleException
+        from airflow.utils.module_loading import import_string
 
+        target_path = _DEPRECATED_EXCEPTIONS[name]
         warnings.warn(
-            "airflow.exceptions.AirflowDagCycleException is deprecated. "
-            "Use airflow.sdk.exceptions.AirflowDagCycleException instead.",
+            f"airflow.exceptions.{name} is deprecated. Use {target_path} 
instead.",
             DeprecationWarning,

Review Comment:
   Don't we also already have a utility to do deprecated imports? We should 
probably use that if we can.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to