msb217 commented on a change in pull request #7596: [AIRFLOW-6870] [WIP] remove 
imports from models/__init__.py
URL: https://github.com/apache/airflow/pull/7596#discussion_r387138211
 
 

 ##########
 File path: airflow/models/__init__.py
 ##########
 @@ -16,25 +16,44 @@
 # specific language governing permissions and limitations
 # under the License.
 """Airflow models"""
-from airflow.models.base import ID_LEN, Base
-from airflow.models.baseoperator import BaseOperator, BaseOperatorLink
-from airflow.models.connection import Connection
-from airflow.models.dag import DAG, DagModel, DagTag
-from airflow.models.dagbag import DagBag
-from airflow.models.dagpickle import DagPickle
-from airflow.models.dagrun import DagRun
-from airflow.models.errors import ImportError  # pylint: 
disable=redefined-builtin
-from airflow.models.log import Log
-from airflow.models.pool import Pool
-from airflow.models.skipmixin import SkipMixin
-from airflow.models.slamiss import SlaMiss
-from airflow.models.taskfail import TaskFail
-from airflow.models.taskinstance import TaskInstance, clear_task_instances
-from airflow.models.taskreschedule import TaskReschedule
-from airflow.models.variable import Variable
-from airflow.models.xcom import XCOM_RETURN_KEY, XCom
-
-try:
-    from airflow.models.kubernetes import KubeResourceVersion, 
KubeWorkerIdentifier
-except ImportError:
-    pass
+
+# flake8: noqa: F401
+# pylint: disable=redefined-outer-name
+import sys
+
+__all__ = ['BaseOperator', 'BaseOperatorLink', 'DAG', 'Variable']
+PY37 = sys.version_info >= (3, 7)
+
+def __getattr__(name):
+    # PEP-562: Lazy loaded attributes on python modules
+    if name == "BaseOperator":
+        from airflow.models.baseoperator import BaseOperator
+        return BaseOperator
+    if name == "BaseOperatorLink":
+        from airflow.models.baseoperator import BaseOperatorLink
+        return BaseOperatorLink
+    if name == 'DAG':
+        from airflow.models.dag import DAG
+        return DAG
+    if name == 'Variable':
+        from airflow.models.variable import Variable
+        return Variable
 
 Review comment:
   Added `DAG` to lazy load. Included `Variable` as well as I know this is 
common in workflows

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to