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

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

59 statements  

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.""" 

19 

20from __future__ import annotations 

21 

22from airflow.utils.deprecation_tools import add_deprecated_classes 

23 

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

25__all__ = [ 

26 "DAG", 

27 "ID_LEN", 

28 "Base", 

29 "BaseOperator", 

30 "BaseOperatorLink", 

31 "BaseXCom", 

32 "Connection", 

33 "DagBag", 

34 "DagWarning", 

35 "DagModel", 

36 "DagRun", 

37 "DagTag", 

38 "DbCallbackRequest", 

39 "Deadline", 

40 "Log", 

41 "MappedOperator", 

42 "Operator", 

43 "Param", 

44 "Pool", 

45 "RenderedTaskInstanceFields", 

46 "SkipMixin", 

47 "TaskInstance", 

48 "TaskInstanceHistory", 

49 "TaskReschedule", 

50 "Trigger", 

51 "Variable", 

52 "XCom", 

53 "clear_task_instances", 

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.models.asset 

64 import airflow.models.backfill 

65 import airflow.models.dag_favorite 

66 import airflow.models.dag_version 

67 import airflow.models.dagbag 

68 import airflow.models.dagbundle 

69 import airflow.models.dagwarning 

70 import airflow.models.deadline_alert 

71 import airflow.models.errors 

72 import airflow.models.revoked_token 

73 import airflow.models.serialized_dag 

74 import airflow.models.taskinstancehistory 

75 import airflow.models.tasklog 

76 import airflow.models.team 

77 import airflow.models.xcom 

78 

79 

80def __getattr__(name): 

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

82 path = __lazy_imports.get(name) 

83 if not path: 

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

85 

86 from airflow._shared.module_loading import import_string 

87 

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

89 

90 # Store for next time 

91 globals()[name] = val 

92 return val 

93 

94 

95__lazy_imports = { 

96 "Job": "airflow.jobs.job", 

97 "DAG": "airflow.sdk", 

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

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

100 "BaseOperator": "airflow.sdk", 

101 "BaseOperatorLink": "airflow.sdk", 

102 "BaseXCom": "airflow.sdk.bases.xcom", 

103 "Callback": "airflow.models.callback", 

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

105 "DagBag": "airflow.dag_processing.dagbag", 

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

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

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

109 "DagWarning": "airflow.models.dagwarning", 

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

111 "Deadline": "airflow.models.deadline", 

112 "DeadlineAlert": "airflow.models.deadline_alert", 

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

114 "HITLDetail": "airflow.models.hitl", 

115 "MappedOperator": "airflow.sdk.definitions.mappedoperator", 

116 "Param": "airflow.sdk.definitions.param", 

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

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

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

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

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

122 "Team": "airflow.models.team", 

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

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

125 "XCom": "airflow.sdk.execution_time.xcom", 

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

127} 

128 

129if TYPE_CHECKING: 

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

131 # having to resort back to this hacky method 

132 from airflow.dag_processing.dagbag import DagBag 

133 from airflow.models.base import ID_LEN, Base 

134 from airflow.models.callback import Callback 

135 from airflow.models.connection import Connection 

136 from airflow.models.dag import DagModel, DagTag 

137 from airflow.models.dagrun import DagRun 

138 from airflow.models.dagwarning import DagWarning 

139 from airflow.models.db_callback_request import DbCallbackRequest 

140 from airflow.models.deadline import Deadline 

141 from airflow.models.deadline_alert import DeadlineAlert 

142 from airflow.models.log import Log 

143 from airflow.models.pool import Pool 

144 from airflow.models.renderedtifields import RenderedTaskInstanceFields 

145 from airflow.models.skipmixin import SkipMixin 

146 from airflow.models.taskinstance import TaskInstance, clear_task_instances 

147 from airflow.models.taskinstancehistory import TaskInstanceHistory 

148 from airflow.models.taskreschedule import TaskReschedule 

149 from airflow.models.trigger import Trigger 

150 from airflow.models.variable import Variable 

151 from airflow.sdk import DAG, BaseOperator, BaseOperatorLink, Param 

152 from airflow.sdk.bases.xcom import BaseXCom 

153 from airflow.sdk.definitions.mappedoperator import MappedOperator 

154 from airflow.sdk.execution_time.xcom import XCom 

155 

156 

157__deprecated_classes = { 

158 "abstractoperator": { 

159 "AbstractOperator": "airflow.sdk.definitions._internal.abstractoperator.AbstractOperator", 

160 "NotMapped": "airflow.sdk.definitions._internal.abstractoperator.NotMapped", 

161 "TaskStateChangeCallback": "airflow.sdk.definitions._internal.abstractoperator.TaskStateChangeCallback", 

162 "DEFAULT_OWNER": "airflow.sdk.definitions._internal.abstractoperator.DEFAULT_OWNER", 

163 "DEFAULT_QUEUE": "airflow.sdk.definitions._internal.abstractoperator.DEFAULT_QUEUE", 

164 "DEFAULT_TASK_EXECUTION_TIMEOUT": "airflow.sdk.definitions._internal.abstractoperator.DEFAULT_TASK_EXECUTION_TIMEOUT", 

165 }, 

166 "param": { 

167 "Param": "airflow.sdk.Param", 

168 "ParamsDict": "airflow.sdk.definitions.param.ParamsDict", 

169 }, 

170 "baseoperator": { 

171 "BaseOperator": "airflow.sdk.bases.operator.BaseOperator", 

172 "chain": "airflow.sdk.bases.operator.chain", 

173 "chain_linear": "airflow.sdk.bases.operator.chain_linear", 

174 "cross_downstream": "airflow.sdk.bases.operator.cross_downstream", 

175 }, 

176 "baseoperatorlink": { 

177 "BaseOperatorLink": "airflow.sdk.BaseOperatorLink", 

178 }, 

179 "operator": { 

180 "BaseOperator": "airflow.sdk.BaseOperator", 

181 "Operator": "airflow.sdk.types.Operator", 

182 }, 

183} 

184add_deprecated_classes(__deprecated_classes, __name__)