Skip to content

Commit d37fbad

Browse files
committed
feat(air302): extend removed names
1 parent 76d2e56 commit d37fbad

File tree

3 files changed

+206
-33
lines changed

3 files changed

+206
-33
lines changed

crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names.py

+25
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
from airflow.utils import dates
22
from airflow.utils.dates import date_range, datetime_to_nano, days_ago
3+
from airflow.triggers.external_task import TaskStateTrigger
4+
from airflow.utils.file import TemporaryDirectory
5+
from airflow.utils.file import mkdirs
6+
from airflow.utils.decorators import apply_defaults
7+
from airflow.utils.dates import parse_execution_date
8+
from airflow.utils.dates import round_time
9+
from airflow.utils.dates import scale_time_units
10+
from airflow.utils.dates import infer_time_unit
11+
from airflow.utils.state import SHUTDOWN
12+
from airflow.utils.state import terminating_states
13+
from airflow.utils.dag_cycle_tester import test_cycle
14+
315

416
date_range
517
days_ago
@@ -10,3 +22,16 @@
1022
# This one was not deprecated.
1123
datetime_to_nano
1224
dates.datetime_to_nano
25+
26+
TaskStateTrigger
27+
TemporaryDirectory
28+
mkdirs
29+
date_range
30+
apply_defaults
31+
parse_execution_date
32+
round_time
33+
scale_time_units
34+
infer_time_unit
35+
test_cycle
36+
SHUTDOWN
37+
terminating_states

crates/ruff_linter/src/rules/airflow/rules/removal_in_3.rs

+33
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,39 @@ fn removed_name(checker: &mut Checker, expr: &Expr, ranged: impl Ranged) {
106106
["airflow", "utils", "dates", "date_range"] => {
107107
Some((qualname.to_string(), Replacement::None))
108108
}
109+
["airflow", "triggers", "external_task", "TaskStateTrigger"] => {
110+
Some((qualname.to_string(), Replacement::None))
111+
}
112+
["airflow", "utils", "file", "TemporaryDirectory"] => {
113+
Some((qualname.to_string(), Replacement::None))
114+
}
115+
["airflow", "utils", "file", "mkdirs"] => {
116+
Some((qualname.to_string(), Replacement::None))
117+
}
118+
["airflow", "utils", "decorators", "apply_defaults"] => {
119+
Some((qualname.to_string(), Replacement::None))
120+
}
121+
["airflow", "utils", "dates", "parse_execution_date"] => {
122+
Some((qualname.to_string(), Replacement::None))
123+
}
124+
["airflow", "utils", "dates", "round_time"] => {
125+
Some((qualname.to_string(), Replacement::None))
126+
}
127+
["airflow", "utils", "dates", "scale_time_units"] => {
128+
Some((qualname.to_string(), Replacement::None))
129+
}
130+
["airflow", "utils", "dates", "infer_time_unit"] => {
131+
Some((qualname.to_string(), Replacement::None))
132+
}
133+
["airflow", "utils", "state", "SHUTDOWN"] => {
134+
Some((qualname.to_string(), Replacement::None))
135+
}
136+
["airflow", "utils", "state", "terminating_states"] => {
137+
Some((qualname.to_string(), Replacement::None))
138+
}
139+
["airflow", "utils", "dag_cycle_tester", "test_cycle"] => {
140+
Some((qualname.to_string(), Replacement::None))
141+
}
109142
["airflow", "utils", "dates", "days_ago"] => Some((
110143
qualname.to_string(),
111144
Replacement::Name("datetime.timedelta()".to_string()),
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,153 @@
11
---
22
source: crates/ruff_linter/src/rules/airflow/mod.rs
3+
snapshot_kind: text
34
---
4-
AIR302_names.py:4:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0
5-
|
6-
2 | from airflow.utils.dates import date_range, datetime_to_nano, days_ago
7-
3 |
8-
4 | date_range
9-
| ^^^^^^^^^^ AIR302
10-
5 | days_ago
11-
|
12-
13-
AIR302_names.py:5:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use datetime.timedelta() instead
14-
|
15-
4 | date_range
16-
5 | days_ago
17-
| ^^^^^^^^ AIR302
18-
6 |
19-
7 | dates.date_range
20-
|
21-
22-
AIR302_names.py:7:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0
23-
|
24-
5 | days_ago
25-
6 |
26-
7 | dates.date_range
27-
| ^^^^^^^^^^ AIR302
28-
8 | dates.days_ago
29-
|
30-
31-
AIR302_names.py:8:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use datetime.timedelta() instead
32-
|
33-
7 | dates.date_range
34-
8 | dates.days_ago
5+
AIR302_names.py:16:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0
6+
|
7+
16 | date_range
8+
| ^^^^^^^^^^ AIR302
9+
17 | days_ago
10+
|
11+
12+
AIR302_names.py:17:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use datetime.timedelta() instead
13+
|
14+
16 | date_range
15+
17 | days_ago
16+
| ^^^^^^^^ AIR302
17+
18 |
18+
19 | dates.date_range
19+
|
20+
21+
AIR302_names.py:19:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0
22+
|
23+
17 | days_ago
24+
18 |
25+
19 | dates.date_range
26+
| ^^^^^^^^^^ AIR302
27+
20 | dates.days_ago
28+
|
29+
30+
AIR302_names.py:20:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use datetime.timedelta() instead
31+
|
32+
19 | dates.date_range
33+
20 | dates.days_ago
3534
| ^^^^^^^^ AIR302
36-
9 |
37-
10 | # This one was not deprecated.
35+
21 |
36+
22 | # This one was not deprecated.
37+
|
38+
39+
AIR302_names.py:26:1: AIR302 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0
40+
|
41+
24 | dates.datetime_to_nano
42+
25 |
43+
26 | TaskStateTrigger
44+
| ^^^^^^^^^^^^^^^^ AIR302
45+
27 | TemporaryDirectory
46+
28 | mkdirs
47+
|
48+
49+
AIR302_names.py:27:1: AIR302 `airflow.utils.file.TemporaryDirectory` is removed in Airflow 3.0
50+
|
51+
26 | TaskStateTrigger
52+
27 | TemporaryDirectory
53+
| ^^^^^^^^^^^^^^^^^^ AIR302
54+
28 | mkdirs
55+
29 | date_range
56+
|
57+
58+
AIR302_names.py:28:1: AIR302 `airflow.utils.file.mkdirs` is removed in Airflow 3.0
59+
|
60+
26 | TaskStateTrigger
61+
27 | TemporaryDirectory
62+
28 | mkdirs
63+
| ^^^^^^ AIR302
64+
29 | date_range
65+
30 | apply_defaults
66+
|
67+
68+
AIR302_names.py:29:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0
69+
|
70+
27 | TemporaryDirectory
71+
28 | mkdirs
72+
29 | date_range
73+
| ^^^^^^^^^^ AIR302
74+
30 | apply_defaults
75+
31 | parse_execution_date
76+
|
77+
78+
AIR302_names.py:30:1: AIR302 `airflow.utils.decorators.apply_defaults` is removed in Airflow 3.0
79+
|
80+
28 | mkdirs
81+
29 | date_range
82+
30 | apply_defaults
83+
| ^^^^^^^^^^^^^^ AIR302
84+
31 | parse_execution_date
85+
32 | round_time
86+
|
87+
88+
AIR302_names.py:31:1: AIR302 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0
89+
|
90+
29 | date_range
91+
30 | apply_defaults
92+
31 | parse_execution_date
93+
| ^^^^^^^^^^^^^^^^^^^^ AIR302
94+
32 | round_time
95+
33 | scale_time_units
96+
|
97+
98+
AIR302_names.py:32:1: AIR302 `airflow.utils.dates.round_time` is removed in Airflow 3.0
99+
|
100+
30 | apply_defaults
101+
31 | parse_execution_date
102+
32 | round_time
103+
| ^^^^^^^^^^ AIR302
104+
33 | scale_time_units
105+
34 | infer_time_unit
106+
|
107+
108+
AIR302_names.py:33:1: AIR302 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0
109+
|
110+
31 | parse_execution_date
111+
32 | round_time
112+
33 | scale_time_units
113+
| ^^^^^^^^^^^^^^^^ AIR302
114+
34 | infer_time_unit
115+
35 | test_cycle
116+
|
117+
118+
AIR302_names.py:34:1: AIR302 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0
119+
|
120+
32 | round_time
121+
33 | scale_time_units
122+
34 | infer_time_unit
123+
| ^^^^^^^^^^^^^^^ AIR302
124+
35 | test_cycle
125+
36 | SHUTDOWN
126+
|
127+
128+
AIR302_names.py:35:1: AIR302 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0
129+
|
130+
33 | scale_time_units
131+
34 | infer_time_unit
132+
35 | test_cycle
133+
| ^^^^^^^^^^ AIR302
134+
36 | SHUTDOWN
135+
37 | terminating_states
136+
|
137+
138+
AIR302_names.py:36:1: AIR302 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0
139+
|
140+
34 | infer_time_unit
141+
35 | test_cycle
142+
36 | SHUTDOWN
143+
| ^^^^^^^^ AIR302
144+
37 | terminating_states
145+
|
146+
147+
AIR302_names.py:37:1: AIR302 `airflow.utils.state.terminating_states` is removed in Airflow 3.0
148+
|
149+
35 | test_cycle
150+
36 | SHUTDOWN
151+
37 | terminating_states
152+
| ^^^^^^^^^^^^^^^^^^ AIR302
38153
|

0 commit comments

Comments
 (0)