---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR311 [*] `airflow.Dataset` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:20:1
   |
19 | # airflow
20 | DatasetFromRoot()
   | ^^^^^^^^^^^^^^^
21 |
22 | # airflow.datasets
   |
help: `Asset` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
17 | )
18 + from airflow.sdk import Asset
19 |
20 | # airflow
   - DatasetFromRoot()
21 + Asset()
22 |
   |

AIR311 [*] `airflow.datasets.Dataset` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:23:1
   |
22 | # airflow.datasets
23 | Dataset()
   | ^^^^^^^
24 | DatasetAlias()
25 | DatasetAll()
   |
help: `Asset` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
17 | )
18 + from airflow.sdk import Asset
19 |
--------------------------------------------------------------------------------
23 | # airflow.datasets
   - Dataset()
24 + Asset()
25 | DatasetAlias()
   |

AIR311 [*] `airflow.datasets.DatasetAlias` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:24:1
   |
22 | # airflow.datasets
23 | Dataset()
24 | DatasetAlias()
   | ^^^^^^^^^^^^
25 | DatasetAll()
26 | DatasetAny()
   |
help: `AssetAlias` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
17 | )
18 + from airflow.sdk import AssetAlias
19 |
--------------------------------------------------------------------------------
24 | Dataset()
   - DatasetAlias()
25 + AssetAlias()
26 | DatasetAll()
   |

AIR311 [*] `airflow.datasets.DatasetAll` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:25:1
   |
23 | Dataset()
24 | DatasetAlias()
25 | DatasetAll()
   | ^^^^^^^^^^
26 | DatasetAny()
27 | Metadata()
   |
help: `AssetAll` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
17 | )
18 + from airflow.sdk import AssetAll
19 |
--------------------------------------------------------------------------------
25 | DatasetAlias()
   - DatasetAll()
26 + AssetAll()
27 | DatasetAny()
   |

AIR311 [*] `airflow.datasets.DatasetAny` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:26:1
   |
24 | DatasetAlias()
25 | DatasetAll()
26 | DatasetAny()
   | ^^^^^^^^^^
27 | Metadata()
28 | expand_alias_to_datasets()
   |
help: `AssetAny` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
17 | )
18 + from airflow.sdk import AssetAny
19 |
--------------------------------------------------------------------------------
26 | DatasetAll()
   - DatasetAny()
27 + AssetAny()
28 | Metadata()
   |

AIR311 [*] `airflow.datasets.metadata.Metadata` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:27:1
   |
25 | DatasetAll()
26 | DatasetAny()
27 | Metadata()
   | ^^^^^^^^
28 | expand_alias_to_datasets()
   |
help: `Metadata` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
10 | )
   - from airflow.datasets.metadata import Metadata
11 | from airflow.decorators import (
--------------------------------------------------------------------------------
16 | )
17 + from airflow.sdk import Metadata
18 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.datasets.expand_alias_to_datasets` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:28:1
   |
26 | DatasetAny()
27 | Metadata()
28 | expand_alias_to_datasets()
   | ^^^^^^^^^^^^^^^^^^^^^^^^
29 |
30 | # airflow.decorators
   |
help: Use `expand_alias_to_assets` from `airflow.models.asset` instead.
   |
17 | )
18 + from airflow.models.asset import expand_alias_to_assets
19 |
--------------------------------------------------------------------------------
28 | Metadata()
   - expand_alias_to_datasets()
29 + expand_alias_to_assets()
30 |
   |

AIR311 [*] `airflow.decorators.dag` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:31:1
   |
30 | # airflow.decorators
31 | dag()
   | ^^^
32 | task()
33 | task_group()
   |
help: `dag` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
12 | from airflow.decorators import (
   -     dag,
13 |     setup,
14 |     task,
15 |     task_group,
16 | )
17 + from airflow.sdk import dag
18 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.task` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:32:1
   |
30 | # airflow.decorators
31 | dag()
32 | task()
   | ^^^^
33 | task_group()
34 | setup()
   |
help: `task` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
14 |     setup,
   -     task,
15 |     task_group,
16 | )
17 + from airflow.sdk import task
18 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.task_group` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:33:1
   |
31 | dag()
32 | task()
33 | task_group()
   | ^^^^^^^^^^
34 | setup()
35 | from airflow.decorators import teardown
   |
help: `task_group` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
15 |     task,
   -     task_group,
16 | )
17 + from airflow.sdk import task_group
18 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.setup` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:34:1
   |
32 | task()
33 | task_group()
34 | setup()
   | ^^^^^
35 | from airflow.decorators import teardown
36 | from airflow.io.path import ObjectStoragePath
   |
help: `setup` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
13 |     dag,
   -     setup,
14 |     task,
15 |     task_group,
16 | )
17 + from airflow.sdk import setup
18 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.teardown` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:48:1
   |
47 | # airflow.decorators
48 | teardown()
   | ^^^^^^^^
49 |
50 | # # airflow.io
   |
help: `teardown` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
34 | setup()
   - from airflow.decorators import teardown
35 | from airflow.io.path import ObjectStoragePath
--------------------------------------------------------------------------------
44 | from airflow.models.dag import DAG as DAGFromDag
45 + from airflow.sdk import teardown
46 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.io.path.ObjectStoragePath` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:51:1
   |
50 | # # airflow.io
51 | ObjectStoragePath()
   | ^^^^^^^^^^^^^^^^^
52 | attach()
   |
help: `ObjectStoragePath` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
35 | from airflow.decorators import teardown
   - from airflow.io.path import ObjectStoragePath
36 | from airflow.io.store import attach
--------------------------------------------------------------------------------
44 | from airflow.models.dag import DAG as DAGFromDag
45 + from airflow.sdk import ObjectStoragePath
46 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.io.store.attach` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:52:1
   |
50 | # # airflow.io
51 | ObjectStoragePath()
52 | attach()
   | ^^^^^^
53 |
54 | # airflow.models
   |
help: `attach` has been moved to `airflow.sdk.io` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
36 | from airflow.io.path import ObjectStoragePath
   - from airflow.io.store import attach
37 | from airflow.models import DAG as DAGFromModel
--------------------------------------------------------------------------------
44 | from airflow.models.dag import DAG as DAGFromDag
45 + from airflow.sdk.io import attach
46 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:55:1
   |
54 | # airflow.models
55 | Connection()
   | ^^^^^^^^^^
56 | DAGFromModel()
57 | Variable()
   |
help: `Connection` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
39 | from airflow.models import (
   -     Connection,
40 |     Variable,
--------------------------------------------------------------------------------
44 | from airflow.models.dag import DAG as DAGFromDag
45 + from airflow.sdk import Connection
46 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.DAG` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:56:1
   |
54 | # airflow.models
55 | Connection()
56 | DAGFromModel()
   | ^^^^^^^^^^^^
57 | Variable()
   |
help: `DAG` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
45 | from airflow.models.dag import DAG as DAGFromDag
46 + from airflow.sdk import DAG
47 |
--------------------------------------------------------------------------------
56 | Connection()
   - DAGFromModel()
57 + DAG()
58 | Variable()
   |

AIR311 [*] `airflow.models.Variable` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:57:1
   |
55 | Connection()
56 | DAGFromModel()
57 | Variable()
   | ^^^^^^^^
58 |
59 | # airflow.models.baseoperator
   |
help: `Variable` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
40 |     Connection,
   -     Variable,
41 | )
42 | from airflow.models.baseoperator import chain, chain_linear, cross_downstream
43 | from airflow.models.baseoperatorlink import BaseOperatorLink
44 | from airflow.models.dag import DAG as DAGFromDag
45 + from airflow.sdk import Variable
46 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.baseoperator.chain` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:60:1
   |
59 | # airflow.models.baseoperator
60 | chain()
   | ^^^^^
61 | chain_linear()
62 | cross_downstream()
   |
help: `chain` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
42 | )
   - from airflow.models.baseoperator import chain, chain_linear, cross_downstream
43 + from airflow.models.baseoperator import chain_linear, cross_downstream
44 | from airflow.models.baseoperatorlink import BaseOperatorLink
45 | from airflow.models.dag import DAG as DAGFromDag
46 + from airflow.sdk import chain
47 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.baseoperator.chain_linear` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:61:1
   |
59 | # airflow.models.baseoperator
60 | chain()
61 | chain_linear()
   | ^^^^^^^^^^^^
62 | cross_downstream()
   |
help: `chain_linear` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
42 | )
   - from airflow.models.baseoperator import chain, chain_linear, cross_downstream
43 + from airflow.models.baseoperator import chain, cross_downstream
44 | from airflow.models.baseoperatorlink import BaseOperatorLink
45 | from airflow.models.dag import DAG as DAGFromDag
46 + from airflow.sdk import chain_linear
47 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.baseoperator.cross_downstream` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:62:1
   |
60 | chain()
61 | chain_linear()
62 | cross_downstream()
   | ^^^^^^^^^^^^^^^^
63 |
64 | # airflow.models.baseoperatolinker
   |
help: `cross_downstream` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
42 | )
   - from airflow.models.baseoperator import chain, chain_linear, cross_downstream
43 + from airflow.models.baseoperator import chain, chain_linear
44 | from airflow.models.baseoperatorlink import BaseOperatorLink
45 | from airflow.models.dag import DAG as DAGFromDag
46 + from airflow.sdk import cross_downstream
47 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.baseoperatorlink.BaseOperatorLink` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:65:1
   |
64 | # airflow.models.baseoperatolinker
65 | BaseOperatorLink()
   | ^^^^^^^^^^^^^^^^
66 |
67 | # airflow.models.dag
   |
help: `BaseOperatorLink` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
43 | from airflow.models.baseoperator import chain, chain_linear, cross_downstream
   - from airflow.models.baseoperatorlink import BaseOperatorLink
44 | from airflow.models.dag import DAG as DAGFromDag
45 + from airflow.sdk import BaseOperatorLink
46 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.dag.DAG` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:68:1
   |
67 | # airflow.models.dag
68 | DAGFromDag()
   | ^^^^^^^^^^
69 | from airflow.timetables.datasets import DatasetOrTimeSchedule
70 | from airflow.utils.dag_parsing_context import get_parsing_context
   |
help: `DAG` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
45 | from airflow.models.dag import DAG as DAGFromDag
46 + from airflow.sdk import DAG
47 |
--------------------------------------------------------------------------------
68 | # airflow.models.dag
   - DAGFromDag()
69 + DAG()
70 | from airflow.timetables.datasets import DatasetOrTimeSchedule
   |

AIR311 [*] `airflow.timetables.datasets.DatasetOrTimeSchedule` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:73:1
   |
72 | # airflow.timetables.datasets
73 | DatasetOrTimeSchedule(datasets=[])
   | ^^^^^^^^^^^^^^^^^^^^^
74 |
75 | # airflow.utils.dag_parsing_context
   |
help: Use `AssetOrTimeSchedule` from `airflow.timetables.assets` instead.
   |
70 | from airflow.utils.dag_parsing_context import get_parsing_context
71 + from airflow.timetables.assets import AssetOrTimeSchedule
72 |
73 | # airflow.timetables.datasets
   - DatasetOrTimeSchedule(datasets=[])
74 + AssetOrTimeSchedule(datasets=[])
75 |
   |

AIR311 [*] `datasets` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:73:23
   |
72 | # airflow.timetables.datasets
73 | DatasetOrTimeSchedule(datasets=[])
   |                       ^^^^^^^^
74 |
75 | # airflow.utils.dag_parsing_context
   |
help: Use `assets` instead
   |
72 | # airflow.timetables.datasets
   - DatasetOrTimeSchedule(datasets=[])
73 + DatasetOrTimeSchedule(assets=[])
74 |
   |

AIR311 [*] `airflow.utils.dag_parsing_context.get_parsing_context` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:76:1
   |
75 | # airflow.utils.dag_parsing_context
76 | get_parsing_context()
   | ^^^^^^^^^^^^^^^^^^^
77 |
78 | from airflow.decorators.base import (
   |
help: `get_parsing_context` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
69 | from airflow.timetables.datasets import DatasetOrTimeSchedule
   - from airflow.utils.dag_parsing_context import get_parsing_context
70 + from airflow.sdk import get_parsing_context
71 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.base.DecoratedMappedOperator` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:87:1
   |
86 | # airflow.decorators.base
87 | DecoratedMappedOperator()
   | ^^^^^^^^^^^^^^^^^^^^^^^
88 | DecoratedOperator()
89 | TaskDecorator()
   |
help: `DecoratedMappedOperator` has been moved to `airflow.sdk.bases.decorator` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
78 | from airflow.decorators.base import (
   -     DecoratedMappedOperator,
79 |     DecoratedOperator,
--------------------------------------------------------------------------------
83 | )
84 + from airflow.sdk.bases.decorator import DecoratedMappedOperator
85 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.base.DecoratedOperator` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:88:1
   |
86 | # airflow.decorators.base
87 | DecoratedMappedOperator()
88 | DecoratedOperator()
   | ^^^^^^^^^^^^^^^^^
89 | TaskDecorator()
90 | get_unique_task_id()
   |
help: `DecoratedOperator` has been moved to `airflow.sdk.bases.decorator` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
79 |     DecoratedMappedOperator,
   -     DecoratedOperator,
80 |     TaskDecorator,
81 |     get_unique_task_id,
82 |     task_decorator_factory,
83 | )
84 + from airflow.sdk.bases.decorator import DecoratedOperator
85 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.base.TaskDecorator` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:89:1
   |
87 | DecoratedMappedOperator()
88 | DecoratedOperator()
89 | TaskDecorator()
   | ^^^^^^^^^^^^^
90 | get_unique_task_id()
91 | task_decorator_factory()
   |
help: `TaskDecorator` has been moved to `airflow.sdk.bases.decorator` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
80 |     DecoratedOperator,
   -     TaskDecorator,
81 |     get_unique_task_id,
82 |     task_decorator_factory,
83 | )
84 + from airflow.sdk.bases.decorator import TaskDecorator
85 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.base.get_unique_task_id` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:90:1
   |
88 | DecoratedOperator()
89 | TaskDecorator()
90 | get_unique_task_id()
   | ^^^^^^^^^^^^^^^^^^
91 | task_decorator_factory()
   |
help: `get_unique_task_id` has been moved to `airflow.sdk.bases.decorator` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
81 |     TaskDecorator,
   -     get_unique_task_id,
82 |     task_decorator_factory,
83 | )
84 + from airflow.sdk.bases.decorator import get_unique_task_id
85 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.decorators.base.task_decorator_factory` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:91:1
   |
89 | TaskDecorator()
90 | get_unique_task_id()
91 | task_decorator_factory()
   | ^^^^^^^^^^^^^^^^^^^^^^
   |
help: `task_decorator_factory` has been moved to `airflow.sdk.bases.decorator` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
82 |     get_unique_task_id,
   -     task_decorator_factory,
83 | )
84 + from airflow.sdk.bases.decorator import task_decorator_factory
85 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.Param` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:97:1
   |
96 | # airflow.models
97 | Param()
   | ^^^^^
98 | DagParam()
99 | ParamsDict()
   |
help: `Param` has been moved to `airflow.sdk.definitions.param` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
93 |
   - from airflow.models import DagParam, Param, ParamsDict
94 + from airflow.models import DagParam, ParamsDict
95 + from airflow.sdk.definitions.param import Param
96 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.DagParam` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:98:1
   |
96 | # airflow.models
97 | Param()
98 | DagParam()
   | ^^^^^^^^
99 | ParamsDict()
   |
help: `DagParam` has been moved to `airflow.sdk.definitions.param` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
93 |
   - from airflow.models import DagParam, Param, ParamsDict
94 + from airflow.models import Param, ParamsDict
95 + from airflow.sdk.definitions.param import DagParam
96 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.ParamsDict` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
  --> AIR311_names.py:99:1
   |
97 | Param()
98 | DagParam()
99 | ParamsDict()
   | ^^^^^^^^^^
   |
help: `ParamsDict` has been moved to `airflow.sdk.definitions.param` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
   |
93 |
   - from airflow.models import DagParam, Param, ParamsDict
94 + from airflow.models import DagParam, Param
95 + from airflow.sdk.definitions.param import ParamsDict
96 |
   |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.param.Param` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
   --> AIR311_names.py:105:1
    |
104 | # airflow.models.param
105 | Param()
    | ^^^^^
106 | DagParam()
107 | ParamsDict()
    |
help: `Param` has been moved to `airflow.sdk.definitions.param` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
    |
101 |
    - from airflow.models.param import DagParam, Param, ParamsDict
102 + from airflow.models.param import DagParam, ParamsDict
103 + from airflow.sdk.definitions.param import Param
104 |
    |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.param.DagParam` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
   --> AIR311_names.py:106:1
    |
104 | # airflow.models.param
105 | Param()
106 | DagParam()
    | ^^^^^^^^
107 | ParamsDict()
    |
help: `DagParam` has been moved to `airflow.sdk.definitions.param` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
    |
101 |
    - from airflow.models.param import DagParam, Param, ParamsDict
102 + from airflow.models.param import Param, ParamsDict
103 + from airflow.sdk.definitions.param import DagParam
104 |
    |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.models.param.ParamsDict` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
   --> AIR311_names.py:107:1
    |
105 | Param()
106 | DagParam()
107 | ParamsDict()
    | ^^^^^^^^^^
    |
help: `ParamsDict` has been moved to `airflow.sdk.definitions.param` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
    |
101 |
    - from airflow.models.param import DagParam, Param, ParamsDict
102 + from airflow.models.param import DagParam, Param
103 + from airflow.sdk.definitions.param import ParamsDict
104 |
    |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.sensors.base.BaseSensorOperator` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
   --> AIR311_names.py:117:1
    |
116 | # airflow.sensors.base
117 | BaseSensorOperator()
    | ^^^^^^^^^^^^^^^^^^
118 | PokeReturnValue()
119 | poke_mode_only()
    |
help: `BaseSensorOperator` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
    |
110 | from airflow.sensors.base import (
    -     BaseSensorOperator,
111 |     PokeReturnValue,
112 |     poke_mode_only,
113 | )
114 + from airflow.sdk import BaseSensorOperator
115 |
    |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.sensors.base.PokeReturnValue` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
   --> AIR311_names.py:118:1
    |
116 | # airflow.sensors.base
117 | BaseSensorOperator()
118 | PokeReturnValue()
    | ^^^^^^^^^^^^^^^
119 | poke_mode_only()
    |
help: `PokeReturnValue` has been moved to `airflow.sdk` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
    |
111 |     BaseSensorOperator,
    -     PokeReturnValue,
112 |     poke_mode_only,
113 | )
114 + from airflow.sdk import PokeReturnValue
115 |
    |
note: This is an unsafe fix and may change runtime behavior

AIR311 [*] `airflow.sensors.base.poke_mode_only` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
   --> AIR311_names.py:119:1
    |
117 | BaseSensorOperator()
118 | PokeReturnValue()
119 | poke_mode_only()
    | ^^^^^^^^^^^^^^
    |
help: `poke_mode_only` has been moved to `airflow.sdk.bases.sensor` since Airflow 3.0 (with apache-airflow-task-sdk>=1.0.0).
    |
112 |     PokeReturnValue,
    -     poke_mode_only,
113 | )
114 + from airflow.sdk.bases.sensor import poke_mode_only
115 |
    |
note: This is an unsafe fix and may change runtime behavior
