uranusjr commented on code in PR #24486:
URL: https://github.com/apache/airflow/pull/24486#discussion_r964413402
##########
airflow/models/__init__.py:
##########
@@ -78,3 +50,94 @@
"XCom",
"clear_task_instances",
]
+
+
+def import_all_models():
+ for name in __lazy_imports:
+ __getattr__(name)
+
+ import airflow.jobs.backfill_job
+ import airflow.jobs.base_job
+ import airflow.jobs.local_task_job
+ import airflow.jobs.scheduler_job
+ import airflow.jobs.triggerer_job
+ import airflow.models.dagwarning
+ import airflow.models.dataset
+ import airflow.models.serialized_dag
+ import airflow.models.tasklog
+
+
+def __getattr__(name):
+ # PEP-562: Lazy loaded attributes on python modules
+ path = __lazy_imports.get(name)
+ if not path:
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
+
+ from airflow.utils.module_loading import import_string
+
+ val = import_string(f'{path}.{name}')
+ # Store for next time
+ globals()[name] = val
+ return val
+
+
+__lazy_imports = {
+ 'DAG': 'airflow.models.dag',
+ 'ID_LEN': 'airflow.models.base',
+ 'XCOM_RETURN_KEY': 'airflow.models.xcom',
+ 'Base': 'airflow.models.base',
+ 'BaseOperator': 'airflow.models.baseoperator',
+ 'BaseOperatorLink': 'airflow.models.baseoperator',
+ 'Connection': 'airflow.models.connection',
+ 'DagBag': 'airflow.models.dagbag',
+ 'DagModel': 'airflow.models.dag',
+ 'DagPickle': 'airflow.models.dagpickle',
+ 'DagRun': 'airflow.models.dagrun',
+ 'DagTag': 'airflow.models.dag',
+ 'DbCallbackRequest': 'airflow.models.db_callback_request',
+ 'ImportError': 'airflow.models.errors',
+ 'Log': 'airflow.models.log',
+ 'MappedOperator': 'airflow.models.mappedoperator',
+ 'Operator': 'airflow.models.operator',
+ 'Param': 'airflow.models.param',
+ 'Pool': 'airflow.models.pool',
+ 'RenderedTaskInstanceFields': 'airflow.models.renderedtifields',
+ 'SkipMixin': 'airflow.models.skipmixin',
+ 'SlaMiss': 'airflow.models.slamiss',
+ 'TaskFail': 'airflow.models.taskfail',
+ 'TaskInstance': 'airflow.models.taskinstance',
+ 'TaskReschedule': 'airflow.models.taskreschedule',
+ 'Trigger': 'airflow.models.trigger',
+ 'Variable': 'airflow.models.variable',
+ 'XCom': 'airflow.models.xcom',
+ 'clear_task_instances': 'airflow.models.taskinstance',
+}
+
+STATICA_HACK = True
+globals()['kcah_acitats'[::-1].upper()] = False
+if STATICA_HACK: # pragma: no cover
Review Comment:
Would `TYPE_CHECKING` not work here?
--
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]