Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/airflow/models/__init__.py: 16%

50 statements  

« prev     ^ index     » next       coverage.py v7.0.1, created at 2022-12-25 06:11 +0000

1# 

2# Licensed to the Apache Software Foundation (ASF) under one 

3# or more contributor license agreements. See the NOTICE file 

4# distributed with this work for additional information 

5# regarding copyright ownership. The ASF licenses this file 

6# to you under the Apache License, Version 2.0 (the 

7# "License"); you may not use this file except in compliance 

8# with the License. You may obtain a copy of the License at 

9# 

10# http://www.apache.org/licenses/LICENSE-2.0 

11# 

12# Unless required by applicable law or agreed to in writing, 

13# software distributed under the License is distributed on an 

14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 

15# KIND, either express or implied. See the License for the 

16# specific language governing permissions and limitations 

17# under the License. 

18"""Airflow models""" 

19from __future__ import annotations 

20 

21# Do not add new models to this -- this is for compat only 

22__all__ = [ 

23 "DAG", 

24 "ID_LEN", 

25 "XCOM_RETURN_KEY", 

26 "Base", 

27 "BaseOperator", 

28 "BaseOperatorLink", 

29 "Connection", 

30 "DagBag", 

31 "DagWarning", 

32 "DagModel", 

33 "DagPickle", 

34 "DagRun", 

35 "DagTag", 

36 "DbCallbackRequest", 

37 "ImportError", 

38 "Log", 

39 "MappedOperator", 

40 "Operator", 

41 "Param", 

42 "Pool", 

43 "RenderedTaskInstanceFields", 

44 "SkipMixin", 

45 "SlaMiss", 

46 "TaskFail", 

47 "TaskInstance", 

48 "TaskReschedule", 

49 "Trigger", 

50 "Variable", 

51 "XCom", 

52 "clear_task_instances", 

53] 

54 

55 

56from typing import TYPE_CHECKING 

57 

58 

59def import_all_models(): 

60 for name in __lazy_imports: 

61 __getattr__(name) 

62 

63 import airflow.jobs.backfill_job 

64 import airflow.jobs.base_job 

65 import airflow.jobs.local_task_job 

66 import airflow.jobs.scheduler_job 

67 import airflow.jobs.triggerer_job 

68 import airflow.models.dagwarning 

69 import airflow.models.dataset 

70 import airflow.models.serialized_dag 

71 import airflow.models.tasklog 

72 import airflow.www.fab_security.sqla.models 

73 

74 

75def __getattr__(name): 

76 # PEP-562: Lazy loaded attributes on python modules 

77 path = __lazy_imports.get(name) 

78 if not path: 

79 raise AttributeError(f"module {__name__!r} has no attribute {name!r}") 

80 

81 from airflow.utils.module_loading import import_string 

82 

83 val = import_string(f"{path}.{name}") 

84 # Store for next time 

85 globals()[name] = val 

86 return val 

87 

88 

89__lazy_imports = { 

90 "DAG": "airflow.models.dag", 

91 "ID_LEN": "airflow.models.base", 

92 "XCOM_RETURN_KEY": "airflow.models.xcom", 

93 "Base": "airflow.models.base", 

94 "BaseOperator": "airflow.models.baseoperator", 

95 "BaseOperatorLink": "airflow.models.baseoperator", 

96 "Connection": "airflow.models.connection", 

97 "DagBag": "airflow.models.dagbag", 

98 "DagModel": "airflow.models.dag", 

99 "DagPickle": "airflow.models.dagpickle", 

100 "DagRun": "airflow.models.dagrun", 

101 "DagTag": "airflow.models.dag", 

102 "DbCallbackRequest": "airflow.models.db_callback_request", 

103 "ImportError": "airflow.models.errors", 

104 "Log": "airflow.models.log", 

105 "MappedOperator": "airflow.models.mappedoperator", 

106 "Operator": "airflow.models.operator", 

107 "Param": "airflow.models.param", 

108 "Pool": "airflow.models.pool", 

109 "RenderedTaskInstanceFields": "airflow.models.renderedtifields", 

110 "SkipMixin": "airflow.models.skipmixin", 

111 "SlaMiss": "airflow.models.slamiss", 

112 "TaskFail": "airflow.models.taskfail", 

113 "TaskInstance": "airflow.models.taskinstance", 

114 "TaskReschedule": "airflow.models.taskreschedule", 

115 "Trigger": "airflow.models.trigger", 

116 "Variable": "airflow.models.variable", 

117 "XCom": "airflow.models.xcom", 

118 "clear_task_instances": "airflow.models.taskinstance", 

119} 

120 

121if TYPE_CHECKING: 

122 # I was unable to get mypy to respect a airflow/models/__init__.pyi, so 

123 # having to resort back to this hacky method 

124 from airflow.models.base import ID_LEN, Base 

125 from airflow.models.baseoperator import BaseOperator, BaseOperatorLink 

126 from airflow.models.connection import Connection 

127 from airflow.models.dag import DAG, DagModel, DagTag 

128 from airflow.models.dagbag import DagBag 

129 from airflow.models.dagpickle import DagPickle 

130 from airflow.models.dagrun import DagRun 

131 from airflow.models.db_callback_request import DbCallbackRequest 

132 from airflow.models.errors import ImportError 

133 from airflow.models.log import Log 

134 from airflow.models.mappedoperator import MappedOperator 

135 from airflow.models.operator import Operator 

136 from airflow.models.param import Param 

137 from airflow.models.pool import Pool 

138 from airflow.models.renderedtifields import RenderedTaskInstanceFields 

139 from airflow.models.skipmixin import SkipMixin 

140 from airflow.models.slamiss import SlaMiss 

141 from airflow.models.taskfail import TaskFail 

142 from airflow.models.taskinstance import TaskInstance, clear_task_instances 

143 from airflow.models.taskreschedule import TaskReschedule 

144 from airflow.models.trigger import Trigger 

145 from airflow.models.variable import Variable 

146 from airflow.models.xcom import XCOM_RETURN_KEY, XCom