@@ -51,7 +51,7 @@ impl Violation for Airflow3Removal {
51
51
match replacement {
52
52
Replacement :: None => format ! ( "`{deprecated}` is removed in Airflow 3.0" ) ,
53
53
Replacement :: Name ( name) => {
54
- format ! ( "`{deprecated}` is removed in Airflow 3.0; use {name} instead" )
54
+ format ! ( "`{deprecated}` is removed in Airflow 3.0; use ` {name}` instead" )
55
55
}
56
56
}
57
57
}
@@ -103,13 +103,75 @@ fn removed_name(checker: &mut Checker, expr: &Expr, ranged: impl Ranged) {
103
103
. semantic ( )
104
104
. resolve_qualified_name ( expr)
105
105
. and_then ( |qualname| match qualname. segments ( ) {
106
- [ "airflow" , "utils " , "dates " , "date_range " ] => {
106
+ [ "airflow" , "triggers " , "external_task " , "TaskStateTrigger " ] => {
107
107
Some ( ( qualname. to_string ( ) , Replacement :: None ) )
108
108
}
109
+ [ "airflow" , "www" , "auth" , "has_access" ] => Some ( (
110
+ qualname. to_string ( ) ,
111
+ Replacement :: Name ( "airflow.www.auth.has_access_*" . to_string ( ) ) ,
112
+ ) ) ,
113
+ [ "airflow" , "api_connexion" , "security" , "requires_access" ] => Some ( (
114
+ qualname. to_string ( ) ,
115
+ Replacement :: Name (
116
+ "airflow.api_connexion.security.requires_access_*" . to_string ( ) ,
117
+ ) ,
118
+ ) ) ,
119
+ // airflow.metrics.validators
120
+ [ "airflow" , "metrics" , "validators" , "AllowListValidator" ] => Some ( (
121
+ qualname. to_string ( ) ,
122
+ Replacement :: Name (
123
+ "airflow.metrics.validators.PatternAllowListValidator" . to_string ( ) ,
124
+ ) ,
125
+ ) ) ,
126
+ [ "airflow" , "metrics" , "validators" , "BlockListValidator" ] => Some ( (
127
+ qualname. to_string ( ) ,
128
+ Replacement :: Name (
129
+ "airflow.metrics.validators.PatternBlockListValidator" . to_string ( ) ,
130
+ ) ,
131
+ ) ) ,
132
+ // airflow.utils.dates
133
+ [ "airflow" , "utils" , "dates" , "date_range" ] => Some ( (
134
+ qualname. to_string ( ) ,
135
+ Replacement :: Name ( "airflow.timetables." . to_string ( ) ) ,
136
+ ) ) ,
109
137
[ "airflow" , "utils" , "dates" , "days_ago" ] => Some ( (
110
138
qualname. to_string ( ) ,
111
- Replacement :: Name ( "datetime.timedelta()" . to_string ( ) ) ,
139
+ Replacement :: Name ( "pendulum.today('UTC').add(days=-N, ...)" . to_string ( ) ) ,
140
+ ) ) ,
141
+ [ "airflow" , "utils" , "dates" , "parse_execution_date" ] => {
142
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
143
+ }
144
+ [ "airflow" , "utils" , "dates" , "round_time" ] => {
145
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
146
+ }
147
+ [ "airflow" , "utils" , "dates" , "scale_time_units" ] => {
148
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
149
+ }
150
+ [ "airflow" , "utils" , "dates" , "infer_time_unit" ] => {
151
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
152
+ }
153
+ // airflow.utils.file
154
+ [ "airflow" , "utils" , "file" , "TemporaryDirectory" ] => {
155
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
156
+ }
157
+ [ "airflow" , "utils" , "file" , "mkdirs" ] => Some ( (
158
+ qualname. to_string ( ) ,
159
+ Replacement :: Name ( "pendulum.today('UTC').add(days=-N, ...)" . to_string ( ) ) ,
112
160
) ) ,
161
+ // airflow.utils.state
162
+ [ "airflow" , "utils" , "state" , "SHUTDOWN" ] => {
163
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
164
+ }
165
+ [ "airflow" , "utils" , "state" , "terminating_states" ] => {
166
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
167
+ }
168
+ // airflow.uilts
169
+ [ "airflow" , "utils" , "dag_cycle_tester" , "test_cycle" ] => {
170
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
171
+ }
172
+ [ "airflow" , "utils" , "decorators" , "apply_defaults" ] => {
173
+ Some ( ( qualname. to_string ( ) , Replacement :: None ) )
174
+ }
113
175
_ => None ,
114
176
} ) ;
115
177
if let Some ( ( deprecated, replacement) ) = result {
0 commit comments