Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/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

52 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 

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

23__all__ = [ 

24 "DAG", 

25 "ID_LEN", 

26 "Base", 

27 "BaseOperator", 

28 "BaseOperatorLink", 

29 "Connection", 

30 "DagBag", 

31 "DagWarning", 

32 "DagModel", 

33 "DagPickle", 

34 "DagRun", 

35 "DagTag", 

36 "DbCallbackRequest", 

37 "Log", 

38 "MappedOperator", 

39 "Operator", 

40 "Param", 

41 "Pool", 

42 "RenderedTaskInstanceFields", 

43 "SkipMixin", 

44 "SlaMiss", 

45 "TaskFail", 

46 "TaskInstance", 

47 "TaskReschedule", 

48 "Trigger", 

49 "Variable", 

50 "XCom", 

51 "clear_task_instances", 

52] 

53 

54 

55from typing import TYPE_CHECKING 

56 

57 

58def import_all_models(): 

59 for name in __lazy_imports: 

60 __getattr__(name) 

61 

62 import airflow.models.dagwarning 

63 import airflow.models.dataset 

64 import airflow.models.errors 

65 import airflow.models.serialized_dag 

66 import airflow.models.tasklog 

67 

68 

69def __getattr__(name): 

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

71 if name != "ImportError": 

72 path = __lazy_imports.get(name) 

73 if not path: 

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

75 

76 from airflow.utils.module_loading import import_string 

77 

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

79 else: 

80 import warnings 

81 

82 from airflow.exceptions import RemovedInAirflow3Warning 

83 from airflow.models.errors import ParseImportError 

84 

85 warnings.warn( 

86 f"Import '{__name__}.ImportError' is deprecated due to shadowing with builtin exception " 

87 f"ImportError and will be removed in the future. " 

88 f"Please consider to use '{ParseImportError.__module__}.ParseImportError' instead.", 

89 RemovedInAirflow3Warning, 

90 stacklevel=2, 

91 ) 

92 val = ParseImportError 

93 

94 # Store for next time 

95 globals()[name] = val 

96 return val 

97 

98 

99__lazy_imports = { 

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

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

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

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

104 "BaseOperatorLink": "airflow.models.baseoperatorlink", 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

128} 

129 

130if TYPE_CHECKING: 

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

132 # having to resort back to this hacky method 

133 from airflow.models.base import ID_LEN, Base 

134 from airflow.models.baseoperator import BaseOperator 

135 from airflow.models.baseoperatorlink import BaseOperatorLink 

136 from airflow.models.connection import Connection 

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

138 from airflow.models.dagbag import DagBag 

139 from airflow.models.dagpickle import DagPickle 

140 from airflow.models.dagrun import DagRun 

141 from airflow.models.dagwarning import DagWarning 

142 from airflow.models.db_callback_request import DbCallbackRequest 

143 from airflow.models.log import Log 

144 from airflow.models.mappedoperator import MappedOperator 

145 from airflow.models.operator import Operator 

146 from airflow.models.param import Param 

147 from airflow.models.pool import Pool 

148 from airflow.models.renderedtifields import RenderedTaskInstanceFields 

149 from airflow.models.skipmixin import SkipMixin 

150 from airflow.models.slamiss import SlaMiss 

151 from airflow.models.taskfail import TaskFail 

152 from airflow.models.taskinstance import TaskInstance, clear_task_instances 

153 from airflow.models.taskreschedule import TaskReschedule 

154 from airflow.models.trigger import Trigger 

155 from airflow.models.variable import Variable 

156 from airflow.models.xcom import XCom