Coverage for /pythoncovmergedfiles/medio/medio/src/airflow/airflow/models/__init__.py: 30%

46 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-07 06:35 +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 "Base", 

26 "BaseOperator", 

27 "BaseOperatorLink", 

28 "Connection", 

29 "DagBag", 

30 "DagWarning", 

31 "DagModel", 

32 "DagPickle", 

33 "DagRun", 

34 "DagTag", 

35 "DbCallbackRequest", 

36 "ImportError", 

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.jobs.job 

63 import airflow.models.dagwarning 

64 import airflow.models.dataset 

65 import airflow.models.serialized_dag 

66 import airflow.models.tasklog 

67 import airflow.www.fab_security.sqla.models 

68 

69 

70def __getattr__(name): 

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

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 # Store for next time 

80 globals()[name] = val 

81 return val 

82 

83 

84__lazy_imports = { 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

113} 

114 

115if TYPE_CHECKING: 

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

117 # having to resort back to this hacky method 

118 from airflow.models.base import ID_LEN, Base 

119 from airflow.models.baseoperator import BaseOperator, BaseOperatorLink 

120 from airflow.models.connection import Connection 

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

122 from airflow.models.dagbag import DagBag 

123 from airflow.models.dagpickle import DagPickle 

124 from airflow.models.dagrun import DagRun 

125 from airflow.models.db_callback_request import DbCallbackRequest 

126 from airflow.models.errors import ImportError 

127 from airflow.models.log import Log 

128 from airflow.models.mappedoperator import MappedOperator 

129 from airflow.models.operator import Operator 

130 from airflow.models.param import Param 

131 from airflow.models.pool import Pool 

132 from airflow.models.renderedtifields import RenderedTaskInstanceFields 

133 from airflow.models.skipmixin import SkipMixin 

134 from airflow.models.slamiss import SlaMiss 

135 from airflow.models.taskfail import TaskFail 

136 from airflow.models.taskinstance import TaskInstance, clear_task_instances 

137 from airflow.models.taskreschedule import TaskReschedule 

138 from airflow.models.trigger import Trigger 

139 from airflow.models.variable import Variable 

140 from airflow.models.xcom import XCom