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

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

56 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.errors 

71 import airflow.models.serialized_dag 

72 import airflow.models.taskinstancehistory 

73 import airflow.models.tasklog 

74 import airflow.models.team 

75 import airflow.models.xcom 

76 

77 

78def __getattr__(name): 

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

80 path = __lazy_imports.get(name) 

81 if not path: 

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

83 

84 from airflow._shared.module_loading import import_string 

85 

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

87 

88 # Store for next time 

89 globals()[name] = val 

90 return val 

91 

92 

93__lazy_imports = { 

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

95 "DAG": "airflow.sdk", 

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

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

98 "BaseOperator": "airflow.sdk", 

99 "BaseOperatorLink": "airflow.sdk", 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

124} 

125 

126if TYPE_CHECKING: 

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

128 # having to resort back to this hacky method 

129 from airflow.dag_processing.dagbag import DagBag 

130 from airflow.models.base import ID_LEN, Base 

131 from airflow.models.callback import Callback 

132 from airflow.models.connection import Connection 

133 from airflow.models.dag import DagModel, DagTag 

134 from airflow.models.dagrun import DagRun 

135 from airflow.models.dagwarning import DagWarning 

136 from airflow.models.db_callback_request import DbCallbackRequest 

137 from airflow.models.deadline import Deadline 

138 from airflow.models.log import Log 

139 from airflow.models.mappedoperator import MappedOperator 

140 from airflow.models.pool import Pool 

141 from airflow.models.renderedtifields import RenderedTaskInstanceFields 

142 from airflow.models.skipmixin import SkipMixin 

143 from airflow.models.taskinstance import TaskInstance, clear_task_instances 

144 from airflow.models.taskinstancehistory import TaskInstanceHistory 

145 from airflow.models.taskreschedule import TaskReschedule 

146 from airflow.models.trigger import Trigger 

147 from airflow.models.variable import Variable 

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

149 from airflow.sdk.bases.xcom import BaseXCom 

150 from airflow.sdk.execution_time.xcom import XCom 

151 

152 

153__deprecated_classes = { 

154 "abstractoperator": { 

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

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

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

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

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

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

161 }, 

162 "param": { 

163 "Param": "airflow.sdk.Param", 

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

165 }, 

166 "baseoperator": { 

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

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

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

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

171 }, 

172 "baseoperatorlink": { 

173 "BaseOperatorLink": "airflow.sdk.BaseOperatorLink", 

174 }, 

175 "operator": { 

176 "BaseOperator": "airflow.sdk.BaseOperator", 

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

178 }, 

179} 

180add_deprecated_classes(__deprecated_classes, __name__)