---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:18:18
   |
16 | task_2 = BashOperator(
17 |     task_id="task_2",
18 |     bash_command="{{ ti.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19 | )
   |
help: Replace with `task_1.output`
   |
17 |     task_id="task_2",
   -     bash_command="{{ ti.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
18 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
19 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:24:18
   |
22 | task_3 = BashOperator(
23 |     task_id="task_3",
24 |     bash_command="{{ task_instance.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25 | )
   |
help: Replace with `task_1.output`
   |
23 |     task_id="task_3",
   -     bash_command="{{ task_instance.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
24 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
25 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:30:18
   |
28 | task_4 = BashOperator(
29 |     task_id="task_4",
30 |     bash_command="{{ ti.xcom_pull('task_1') }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31 | )
   |
help: Replace with `task_1.output`
   |
29 |     task_id="task_4",
   -     bash_command="{{ ti.xcom_pull('task_1') }}",  # AIR201 (fix: task_1.output)
30 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
31 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:36:18
   |
34 | task_5 = BashOperator(
35 |     task_id="task_5",
36 |     bash_command='{{ ti.xcom_pull(task_ids="task_1") }}',  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
37 | )
   |
help: Replace with `task_1.output`
   |
35 |     task_id="task_5",
   -     bash_command='{{ ti.xcom_pull(task_ids="task_1") }}',  # AIR201 (fix: task_1.output)
36 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
37 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:42:18
   |
40 | task_6 = BashOperator(
41 |     task_id="task_6",
42 |     bash_command="{{ti.xcom_pull(task_ids='task_1')}}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
43 | )
   |
help: Replace with `task_1.output`
   |
41 |     task_id="task_6",
   -     bash_command="{{ti.xcom_pull(task_ids='task_1')}}",  # AIR201 (fix: task_1.output)
42 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
43 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:48:18
   |
46 | task_7 = BashOperator(
47 |     task_id="task_7",
48 |     bash_command="{{ ti.xcom_pull(task_id='task_1') }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49 | )
   |
help: Replace with `task_1.output`
   |
47 |     task_id="task_7",
   -     bash_command="{{ ti.xcom_pull(task_id='task_1') }}",  # AIR201 (fix: task_1.output)
48 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
49 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:54:22
   |
52 | task_8 = ExternalTaskSensor(
53 |     task_id="task_8",
54 |     external_task_id="{{ ti.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
55 | )
   |
help: Replace with `task_1.output`
   |
53 |     task_id="task_8",
   -     external_task_id="{{ ti.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
54 +     external_task_id=task_1.output,  # AIR201 (fix: task_1.output)
55 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:60:14
   |
58 | task_9 = HttpOperator(
59 |     task_id="task_9",
60 |     endpoint="{{ ti.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
61 | )
   |
help: Replace with `task_1.output`
   |
59 |     task_id="task_9",
   -     endpoint="{{ ti.xcom_pull(task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
60 +     endpoint=task_1.output,  # AIR201 (fix: task_1.output)
61 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:67:18
   |
65 | task_18 = BashOperator(
66 |     task_id="task_18",
67 |     bash_command="{{ ti.xcom_pull(task_ids=['task_1']) }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
68 | )
   |
help: Replace with `task_1.output`
   |
66 |     task_id="task_18",
   -     bash_command="{{ ti.xcom_pull(task_ids=['task_1']) }}",  # AIR201 (fix: task_1.output)
67 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
68 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:73:18
   |
71 | task_19 = BashOperator(
72 |     task_id="task_19",
73 |     bash_command="{{ ti.xcom_pull(task_ids=('task_1',)) }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
74 | )
   |
help: Replace with `task_1.output`
   |
72 |     task_id="task_19",
   -     bash_command="{{ ti.xcom_pull(task_ids=('task_1',)) }}",  # AIR201 (fix: task_1.output)
73 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
74 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:79:18
   |
77 | task_20 = BashOperator(
78 |     task_id="task_20",
79 |     bash_command="{{ ti.xcom_pull(task_ids='task_1', key='return_value') }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
80 | )
   |
help: Replace with `task_1.output`
   |
78 |     task_id="task_20",
   -     bash_command="{{ ti.xcom_pull(task_ids='task_1', key='return_value') }}",  # AIR201 (fix: task_1.output)
79 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
80 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:85:18
   |
83 | task_21 = BashOperator(
84 |     task_id="task_21",
85 |     bash_command="{{ ti.xcom_pull(task_ids=['task_1'], key='return_value') }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
86 | )
   |
help: Replace with `task_1.output`
   |
84 |     task_id="task_21",
   -     bash_command="{{ ti.xcom_pull(task_ids=['task_1'], key='return_value') }}",  # AIR201 (fix: task_1.output)
85 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
86 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:91:18
   |
89 | task_22 = BashOperator(
90 |     task_id="task_22",
91 |     bash_command='{{ task_instance.xcom_pull(task_ids=["task_1"], key="return_value") }}',  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
92 | )
   |
help: Replace with `task_1.output`
   |
90 |     task_id="task_22",
   -     bash_command='{{ task_instance.xcom_pull(task_ids=["task_1"], key="return_value") }}',  # AIR201 (fix: task_1.output)
91 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
92 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "task_1" instead of `xcom_pull` in a template string
  --> AIR201.py:97:18
   |
95 | task_25 = BashOperator(
96 |     task_id="task_25",
97 |     bash_command="{{ ti.xcom_pull(key='return_value', task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
98 | )
   |
help: Replace with `task_1.output`
   |
96 |     task_id="task_25",
   -     bash_command="{{ ti.xcom_pull(key='return_value', task_ids='task_1') }}",  # AIR201 (fix: task_1.output)
97 +     bash_command=task_1.output,  # AIR201 (fix: task_1.output)
98 | )
   |
note: This is an unsafe fix and may change runtime behavior

AIR201 [*] Use the `.output` attribute on the task object for "extract_data" instead of `xcom_pull` in a template string
   --> AIR201.py:108:18
    |
106 | task_16 = BashOperator(
107 |     task_id="task_16",
108 |     bash_command="{{ ti.xcom_pull(task_ids='extract_data') }}",  # AIR201 (fix: extract_data.output)
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
109 | )
    |
help: Replace with `extract_data.output`
    |
107 |     task_id="task_16",
    -     bash_command="{{ ti.xcom_pull(task_ids='extract_data') }}",  # AIR201 (fix: extract_data.output)
108 +     bash_command=extract_data.output,  # AIR201 (fix: extract_data.output)
109 | )
    |
note: This is an unsafe fix and may change runtime behavior

AIR201 Use the `.output` attribute on the task object for "unknown_task" instead of `xcom_pull` in a template string
   --> AIR201.py:114:18
    |
112 | task_17 = BashOperator(
113 |     task_id="task_17",
114 |     bash_command="{{ ti.xcom_pull(task_ids='unknown_task') }}",  # AIR201 (no fix)
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
115 | )
    |
help: Replace with `unknown_task.output`
