---
source: crates/ruff_linter/src/rules/airflow/mod.rs
snapshot_kind: text
---
AIR302_names.py:105:1: AIR302 `airflow.PY36` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
    | ^^^^ AIR302
106 | DatasetFromRoot()
    |
    = help: Use `sys.version_info` instead

AIR302_names.py:105:7: AIR302 `airflow.PY37` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
    |       ^^^^ AIR302
106 | DatasetFromRoot()
    |
    = help: Use `sys.version_info` instead

AIR302_names.py:105:13: AIR302 `airflow.PY38` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
    |             ^^^^ AIR302
106 | DatasetFromRoot()
    |
    = help: Use `sys.version_info` instead

AIR302_names.py:105:19: AIR302 `airflow.PY39` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
    |                   ^^^^ AIR302
106 | DatasetFromRoot()
    |
    = help: Use `sys.version_info` instead

AIR302_names.py:105:25: AIR302 `airflow.PY310` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
    |                         ^^^^^ AIR302
106 | DatasetFromRoot()
    |
    = help: Use `sys.version_info` instead

AIR302_names.py:105:32: AIR302 `airflow.PY311` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
    |                                ^^^^^ AIR302
106 | DatasetFromRoot()
    |
    = help: Use `sys.version_info` instead

AIR302_names.py:105:39: AIR302 `airflow.PY312` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
    |                                       ^^^^^ AIR302
106 | DatasetFromRoot()
    |
    = help: Use `sys.version_info` instead

AIR302_names.py:106:1: AIR302 `airflow.Dataset` is removed in Airflow 3.0
    |
104 | # airflow root
105 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
106 | DatasetFromRoot()
    | ^^^^^^^^^^^^^^^ AIR302
107 | 
108 | dataset_from_root = DatasetFromRoot()
    |
    = help: Use `airflow.sdk.definitions.asset.Asset` instead

AIR302_names.py:108:21: AIR302 `airflow.Dataset` is removed in Airflow 3.0
    |
106 | DatasetFromRoot()
107 | 
108 | dataset_from_root = DatasetFromRoot()
    |                     ^^^^^^^^^^^^^^^ AIR302
109 | dataset_from_root.iter_datasets()
110 | dataset_from_root.iter_dataset_aliases()
    |
    = help: Use `airflow.sdk.definitions.asset.Asset` instead

AIR302_names.py:109:19: AIR302 `iter_datasets` is removed in Airflow 3.0
    |
108 | dataset_from_root = DatasetFromRoot()
109 | dataset_from_root.iter_datasets()
    |                   ^^^^^^^^^^^^^ AIR302
110 | dataset_from_root.iter_dataset_aliases()
    |
    = help: Use `iter_assets` instead

AIR302_names.py:110:19: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0
    |
108 | dataset_from_root = DatasetFromRoot()
109 | dataset_from_root.iter_datasets()
110 | dataset_from_root.iter_dataset_aliases()
    |                   ^^^^^^^^^^^^^^^^^^^^ AIR302
111 | 
112 | # airflow.api_connexion.security
    |
    = help: Use `iter_asset_aliases` instead

AIR302_names.py:113:1: AIR302 `airflow.api_connexion.security.requires_access` is removed in Airflow 3.0
    |
112 | # airflow.api_connexion.security
113 | requires_access, requires_access_dataset
    | ^^^^^^^^^^^^^^^ AIR302
114 | 
115 | # airflow.auth.managers
    |
    = help: Use `airflow.api_connexion.security.requires_access_*` instead

AIR302_names.py:113:18: AIR302 `airflow.api_connexion.security.requires_access_dataset` is removed in Airflow 3.0
    |
112 | # airflow.api_connexion.security
113 | requires_access, requires_access_dataset
    |                  ^^^^^^^^^^^^^^^^^^^^^^^ AIR302
114 | 
115 | # airflow.auth.managers
    |
    = help: Use `airflow.api_connexion.security.requires_access_asset` instead

AIR302_names.py:116:1: AIR302 `airflow.auth.managers.base_auth_manager.is_authorized_dataset` is removed in Airflow 3.0
    |
115 | # airflow.auth.managers
116 | is_authorized_dataset
    | ^^^^^^^^^^^^^^^^^^^^^ AIR302
117 | DatasetDetails()
    |
    = help: Use `airflow.auth.managers.base_auth_manager.is_authorized_asset` instead

AIR302_names.py:117:1: AIR302 `airflow.auth.managers.models.resource_details.DatasetDetails` is removed in Airflow 3.0
    |
115 | # airflow.auth.managers
116 | is_authorized_dataset
117 | DatasetDetails()
    | ^^^^^^^^^^^^^^ AIR302
118 | 
119 | # airflow.configuration
    |
    = help: Use `airflow.auth.managers.models.resource_details.AssetDetails` instead

AIR302_names.py:120:1: AIR302 `airflow.configuration.get` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    | ^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.get` instead

AIR302_names.py:120:6: AIR302 `airflow.configuration.getboolean` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    |      ^^^^^^^^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.getboolean` instead

AIR302_names.py:120:18: AIR302 `airflow.configuration.getfloat` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    |                  ^^^^^^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.getfloat` instead

AIR302_names.py:120:28: AIR302 `airflow.configuration.getint` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    |                            ^^^^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.getint` instead

AIR302_names.py:120:36: AIR302 `airflow.configuration.has_option` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    |                                    ^^^^^^^^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.has_option` instead

AIR302_names.py:120:48: AIR302 `airflow.configuration.remove_option` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    |                                                ^^^^^^^^^^^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.remove_option` instead

AIR302_names.py:120:63: AIR302 `airflow.configuration.as_dict` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    |                                                               ^^^^^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.as_dict` instead

AIR302_names.py:120:72: AIR302 `airflow.configuration.set` is removed in Airflow 3.0
    |
119 | # airflow.configuration
120 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
    |                                                                        ^^^ AIR302
    |
    = help: Use `airflow.configuration.conf.set` instead

AIR302_names.py:124:1: AIR302 `airflow.contrib.aws_athena_hook.AWSAthenaHook` is removed in Airflow 3.0; The whole `airflow.contrib` module has been removed.
    |
123 | # airflow.contrib.*
124 | AWSAthenaHook()
    | ^^^^^^^^^^^^^ AIR302
125 | 
126 | # airflow.datasets
    |

AIR302_names.py:127:1: AIR302 `airflow.datasets.Dataset` is removed in Airflow 3.0
    |
126 | # airflow.datasets
127 | Dataset()
    | ^^^^^^^ AIR302
128 | DatasetAlias()
129 | DatasetAliasEvent()
    |
    = help: Use `airflow.sdk.definitions.asset.Asset` instead

AIR302_names.py:128:1: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0
    |
126 | # airflow.datasets
127 | Dataset()
128 | DatasetAlias()
    | ^^^^^^^^^^^^ AIR302
129 | DatasetAliasEvent()
130 | DatasetAll()
    |
    = help: Use `airflow.sdk.definitions.asset.AssetAlias` instead

AIR302_names.py:129:1: AIR302 `airflow.datasets.DatasetAliasEvent` is removed in Airflow 3.0
    |
127 | Dataset()
128 | DatasetAlias()
129 | DatasetAliasEvent()
    | ^^^^^^^^^^^^^^^^^ AIR302
130 | DatasetAll()
131 | DatasetAny()
    |

AIR302_names.py:130:1: AIR302 `airflow.datasets.DatasetAll` is removed in Airflow 3.0
    |
128 | DatasetAlias()
129 | DatasetAliasEvent()
130 | DatasetAll()
    | ^^^^^^^^^^ AIR302
131 | DatasetAny()
132 | expand_alias_to_datasets
    |
    = help: Use `airflow.sdk.definitions.asset.AssetAll` instead

AIR302_names.py:131:1: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0
    |
129 | DatasetAliasEvent()
130 | DatasetAll()
131 | DatasetAny()
    | ^^^^^^^^^^ AIR302
132 | expand_alias_to_datasets
133 | Metadata()
    |
    = help: Use `airflow.sdk.definitions.asset.AssetAny` instead

AIR302_names.py:132:1: AIR302 `airflow.datasets.expand_alias_to_datasets` is removed in Airflow 3.0
    |
130 | DatasetAll()
131 | DatasetAny()
132 | expand_alias_to_datasets
    | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
133 | Metadata()
    |
    = help: Use `airflow.sdk.definitions.asset.expand_alias_to_assets` instead

AIR302_names.py:133:1: AIR302 `airflow.datasets.metadata.Metadata` is removed in Airflow 3.0
    |
131 | DatasetAny()
132 | expand_alias_to_datasets
133 | Metadata()
    | ^^^^^^^^ AIR302
134 | 
135 | dataset_to_test_method_call = Dataset()
    |
    = help: Use `airflow.sdk.definitions.asset.metadata.Metadata` instead

AIR302_names.py:135:31: AIR302 `airflow.datasets.Dataset` is removed in Airflow 3.0
    |
133 | Metadata()
134 | 
135 | dataset_to_test_method_call = Dataset()
    |                               ^^^^^^^ AIR302
136 | dataset_to_test_method_call.iter_datasets()
137 | dataset_to_test_method_call.iter_dataset_aliases()
    |
    = help: Use `airflow.sdk.definitions.asset.Asset` instead

AIR302_names.py:136:29: AIR302 `iter_datasets` is removed in Airflow 3.0
    |
135 | dataset_to_test_method_call = Dataset()
136 | dataset_to_test_method_call.iter_datasets()
    |                             ^^^^^^^^^^^^^ AIR302
137 | dataset_to_test_method_call.iter_dataset_aliases()
    |
    = help: Use `iter_assets` instead

AIR302_names.py:137:29: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0
    |
135 | dataset_to_test_method_call = Dataset()
136 | dataset_to_test_method_call.iter_datasets()
137 | dataset_to_test_method_call.iter_dataset_aliases()
    |                             ^^^^^^^^^^^^^^^^^^^^ AIR302
138 | 
139 | alias_to_test_method_call = DatasetAlias()
    |
    = help: Use `iter_asset_aliases` instead

AIR302_names.py:139:29: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0
    |
137 | dataset_to_test_method_call.iter_dataset_aliases()
138 | 
139 | alias_to_test_method_call = DatasetAlias()
    |                             ^^^^^^^^^^^^ AIR302
140 | alias_to_test_method_call.iter_datasets()
141 | alias_to_test_method_call.iter_dataset_aliases()
    |
    = help: Use `airflow.sdk.definitions.asset.AssetAlias` instead

AIR302_names.py:140:27: AIR302 `iter_datasets` is removed in Airflow 3.0
    |
139 | alias_to_test_method_call = DatasetAlias()
140 | alias_to_test_method_call.iter_datasets()
    |                           ^^^^^^^^^^^^^ AIR302
141 | alias_to_test_method_call.iter_dataset_aliases()
    |
    = help: Use `iter_assets` instead

AIR302_names.py:141:27: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0
    |
139 | alias_to_test_method_call = DatasetAlias()
140 | alias_to_test_method_call.iter_datasets()
141 | alias_to_test_method_call.iter_dataset_aliases()
    |                           ^^^^^^^^^^^^^^^^^^^^ AIR302
142 | 
143 | any_to_test_method_call = DatasetAny()
    |
    = help: Use `iter_asset_aliases` instead

AIR302_names.py:143:27: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0
    |
141 | alias_to_test_method_call.iter_dataset_aliases()
142 | 
143 | any_to_test_method_call = DatasetAny()
    |                           ^^^^^^^^^^ AIR302
144 | any_to_test_method_call.iter_datasets()
145 | any_to_test_method_call.iter_dataset_aliases()
    |
    = help: Use `airflow.sdk.definitions.asset.AssetAny` instead

AIR302_names.py:144:25: AIR302 `iter_datasets` is removed in Airflow 3.0
    |
143 | any_to_test_method_call = DatasetAny()
144 | any_to_test_method_call.iter_datasets()
    |                         ^^^^^^^^^^^^^ AIR302
145 | any_to_test_method_call.iter_dataset_aliases()
    |
    = help: Use `iter_assets` instead

AIR302_names.py:145:25: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0
    |
143 | any_to_test_method_call = DatasetAny()
144 | any_to_test_method_call.iter_datasets()
145 | any_to_test_method_call.iter_dataset_aliases()
    |                         ^^^^^^^^^^^^^^^^^^^^ AIR302
146 | 
147 | # airflow.datasets.manager
    |
    = help: Use `iter_asset_aliases` instead

AIR302_names.py:148:19: AIR302 `airflow.datasets.manager.dataset_manager` is removed in Airflow 3.0
    |
147 | # airflow.datasets.manager
148 | DatasetManager(), dataset_manager, resolve_dataset_manager
    |                   ^^^^^^^^^^^^^^^ AIR302
149 | 
150 | # airflow.hooks
    |
    = help: Use `airflow.assets.manager` instead

AIR302_names.py:148:36: AIR302 `airflow.datasets.manager.resolve_dataset_manager` is removed in Airflow 3.0
    |
147 | # airflow.datasets.manager
148 | DatasetManager(), dataset_manager, resolve_dataset_manager
    |                                    ^^^^^^^^^^^^^^^^^^^^^^^ AIR302
149 | 
150 | # airflow.hooks
    |
    = help: Use `airflow.assets.resolve_asset_manager` instead

AIR302_names.py:151:1: AIR302 `airflow.hooks.base_hook.BaseHook` is removed in Airflow 3.0
    |
150 | # airflow.hooks
151 | BaseHook()
    | ^^^^^^^^ AIR302
152 | 
153 | # airflow.lineage.hook
    |
    = help: Use `airflow.hooks.base.BaseHook` instead

AIR302_names.py:154:1: AIR302 `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0
    |
153 | # airflow.lineage.hook
154 | DatasetLineageInfo()
    | ^^^^^^^^^^^^^^^^^^ AIR302
155 | 
156 | # airflow.listeners.spec.dataset
    |
    = help: Use `airflow.lineage.hook.AssetLineageInfo` instead

AIR302_names.py:157:1: AIR302 `airflow.listeners.spec.dataset.on_dataset_changed` is removed in Airflow 3.0
    |
156 | # airflow.listeners.spec.dataset
157 | on_dataset_changed, on_dataset_created
    | ^^^^^^^^^^^^^^^^^^ AIR302
158 | 
159 | # airflow.metrics.validators
    |
    = help: Use `airflow.listeners.spec.asset.on_asset_changed` instead

AIR302_names.py:157:21: AIR302 `airflow.listeners.spec.dataset.on_dataset_created` is removed in Airflow 3.0
    |
156 | # airflow.listeners.spec.dataset
157 | on_dataset_changed, on_dataset_created
    |                     ^^^^^^^^^^^^^^^^^^ AIR302
158 | 
159 | # airflow.metrics.validators
    |
    = help: Use `airflow.listeners.spec.asset.on_asset_created` instead

AIR302_names.py:160:1: AIR302 `airflow.metrics.validators.AllowListValidator` is removed in Airflow 3.0
    |
159 | # airflow.metrics.validators
160 | AllowListValidator(), BlockListValidator()
    | ^^^^^^^^^^^^^^^^^^ AIR302
161 | 
162 | # airflow.operators.dummy_operator
    |
    = help: Use `airflow.metrics.validators.PatternAllowListValidator` instead

AIR302_names.py:160:23: AIR302 `airflow.metrics.validators.BlockListValidator` is removed in Airflow 3.0
    |
159 | # airflow.metrics.validators
160 | AllowListValidator(), BlockListValidator()
    |                       ^^^^^^^^^^^^^^^^^^ AIR302
161 | 
162 | # airflow.operators.dummy_operator
    |
    = help: Use `airflow.metrics.validators.PatternBlockListValidator` instead

AIR302_names.py:163:16: AIR302 `airflow.operators.dummy_operator.EmptyOperator` is removed in Airflow 3.0
    |
162 | # airflow.operators.dummy_operator
163 | dummy_operator.EmptyOperator()
    |                ^^^^^^^^^^^^^ AIR302
164 | dummy_operator.DummyOperator()
    |
    = help: Use `airflow.operators.empty.EmptyOperator` instead

AIR302_names.py:164:16: AIR302 `airflow.operators.dummy_operator.DummyOperator` is removed in Airflow 3.0
    |
162 | # airflow.operators.dummy_operator
163 | dummy_operator.EmptyOperator()
164 | dummy_operator.DummyOperator()
    |                ^^^^^^^^^^^^^ AIR302
165 | 
166 | # airflow.operators.bash_operator
    |
    = help: Use `airflow.operators.empty.EmptyOperator` instead

AIR302_names.py:167:1: AIR302 `airflow.operators.bash_operator.BashOperator` is removed in Airflow 3.0
    |
166 | # airflow.operators.bash_operator
167 | BashOperator()
    | ^^^^^^^^^^^^ AIR302
168 | 
169 | # airflow.operators.branch_operator
    |
    = help: Use `airflow.operators.bash.BashOperator` instead

AIR302_names.py:170:1: AIR302 `airflow.operators.branch_operator.BaseBranchOperator` is removed in Airflow 3.0
    |
169 | # airflow.operators.branch_operator
170 | BaseBranchOperator()
    | ^^^^^^^^^^^^^^^^^^ AIR302
171 | 
172 | # airflow.operators.dagrun_operator
    |
    = help: Use `airflow.operators.branch.BaseBranchOperator` instead

AIR302_names.py:173:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunLink` is removed in Airflow 3.0
    |
172 | # airflow.operators.dagrun_operator
173 | TriggerDagRunLink()
    | ^^^^^^^^^^^^^^^^^ AIR302
174 | TriggerDagRunOperator()
    |
    = help: Use `airflow.operators.trigger_dagrun.TriggerDagRunLink` instead

AIR302_names.py:174:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunOperator` is removed in Airflow 3.0
    |
172 | # airflow.operators.dagrun_operator
173 | TriggerDagRunLink()
174 | TriggerDagRunOperator()
    | ^^^^^^^^^^^^^^^^^^^^^ AIR302
175 | 
176 | # airflow.operators.dummy
    |
    = help: Use `airflow.operators.trigger_dagrun.TriggerDagRunOperator` instead

AIR302_names.py:177:18: AIR302 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0
    |
176 | # airflow.operators.dummy
177 | EmptyOperator(), DummyOperator()
    |                  ^^^^^^^^^^^^^ AIR302
178 | 
179 | # airflow.operators.email_operator
    |
    = help: Use `airflow.operators.empty.EmptyOperator` instead

AIR302_names.py:180:1: AIR302 `airflow.operators.email_operator.EmailOperator` is removed in Airflow 3.0
    |
179 | # airflow.operators.email_operator
180 | EmailOperator()
    | ^^^^^^^^^^^^^ AIR302
181 | 
182 | # airflow.operators.latest_only_operator
    |
    = help: Use `airflow.operators.email.EmailOperator` instead

AIR302_names.py:183:1: AIR302 `airflow.operators.latest_only_operator.LatestOnlyOperator` is removed in Airflow 3.0
    |
182 | # airflow.operators.latest_only_operator
183 | LatestOnlyOperator()
    | ^^^^^^^^^^^^^^^^^^ AIR302
184 | 
185 | # airflow.operators.python_operator
    |
    = help: Use `airflow.operators.latest_only.LatestOnlyOperator` instead

AIR302_names.py:186:1: AIR302 `airflow.operators.python_operator.BranchPythonOperator` is removed in Airflow 3.0
    |
185 | # airflow.operators.python_operator
186 | BranchPythonOperator()
    | ^^^^^^^^^^^^^^^^^^^^ AIR302
187 | PythonOperator()
188 | PythonVirtualenvOperator()
    |
    = help: Use `airflow.operators.python.BranchPythonOperator` instead

AIR302_names.py:187:1: AIR302 `airflow.operators.python_operator.PythonOperator` is removed in Airflow 3.0
    |
185 | # airflow.operators.python_operator
186 | BranchPythonOperator()
187 | PythonOperator()
    | ^^^^^^^^^^^^^^ AIR302
188 | PythonVirtualenvOperator()
189 | ShortCircuitOperator()
    |
    = help: Use `airflow.operators.python.PythonOperator` instead

AIR302_names.py:188:1: AIR302 `airflow.operators.python_operator.PythonVirtualenvOperator` is removed in Airflow 3.0
    |
186 | BranchPythonOperator()
187 | PythonOperator()
188 | PythonVirtualenvOperator()
    | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
189 | ShortCircuitOperator()
    |
    = help: Use `airflow.operators.python.PythonVirtualenvOperator` instead

AIR302_names.py:189:1: AIR302 `airflow.operators.python_operator.ShortCircuitOperator` is removed in Airflow 3.0
    |
187 | PythonOperator()
188 | PythonVirtualenvOperator()
189 | ShortCircuitOperator()
    | ^^^^^^^^^^^^^^^^^^^^ AIR302
190 | 
191 | # airflow.operators.subdag.*
    |
    = help: Use `airflow.operators.python.ShortCircuitOperator` instead

AIR302_names.py:192:1: AIR302 `airflow.operators.subdag.SubDagOperator` is removed in Airflow 3.0; The whole `airflow.subdag` module has been removed.
    |
191 | # airflow.operators.subdag.*
192 | SubDagOperator()
    | ^^^^^^^^^^^^^^ AIR302
193 | 
194 | # airflow.providers.amazon
    |

AIR302_names.py:195:13: AIR302 `airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.DATASET` is removed in Airflow 3.0
    |
194 | # airflow.providers.amazon
195 | AvpEntities.DATASET
    |             ^^^^^^^ AIR302
196 | s3.create_dataset
197 | s3.convert_dataset_to_openlineage
    |
    = help: Use `airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.ASSET` instead

AIR302_names.py:196:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.create_dataset` is removed in Airflow 3.0
    |
194 | # airflow.providers.amazon
195 | AvpEntities.DATASET
196 | s3.create_dataset
    |    ^^^^^^^^^^^^^^ AIR302
197 | s3.convert_dataset_to_openlineage
198 | s3.sanitize_uri
    |
    = help: Use `airflow.providers.amazon.aws.assets.s3.create_asset` instead

AIR302_names.py:197:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage` is removed in Airflow 3.0
    |
195 | AvpEntities.DATASET
196 | s3.create_dataset
197 | s3.convert_dataset_to_openlineage
    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
198 | s3.sanitize_uri
    |
    = help: Use `airflow.providers.amazon.aws.assets.s3.convert_asset_to_openlineage` instead

AIR302_names.py:198:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.sanitize_uri` is removed in Airflow 3.0
    |
196 | s3.create_dataset
197 | s3.convert_dataset_to_openlineage
198 | s3.sanitize_uri
    |    ^^^^^^^^^^^^ AIR302
199 | 
200 | # airflow.providers.common.io
    |
    = help: Use `airflow.providers.amazon.aws.assets.s3.sanitize_uri` instead

AIR302_names.py:201:16: AIR302 `airflow.providers.common.io.datasets.file.convert_dataset_to_openlineage` is removed in Airflow 3.0
    |
200 | # airflow.providers.common.io
201 | common_io_file.convert_dataset_to_openlineage
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
202 | common_io_file.create_dataset
203 | common_io_file.sanitize_uri
    |
    = help: Use `airflow.providers.common.io.assets.file.convert_asset_to_openlineage` instead

AIR302_names.py:202:16: AIR302 `airflow.providers.common.io.datasets.file.create_dataset` is removed in Airflow 3.0
    |
200 | # airflow.providers.common.io
201 | common_io_file.convert_dataset_to_openlineage
202 | common_io_file.create_dataset
    |                ^^^^^^^^^^^^^^ AIR302
203 | common_io_file.sanitize_uri
    |
    = help: Use `airflow.providers.common.io.assets.file.create_asset` instead

AIR302_names.py:203:16: AIR302 `airflow.providers.common.io.datasets.file.sanitize_uri` is removed in Airflow 3.0
    |
201 | common_io_file.convert_dataset_to_openlineage
202 | common_io_file.create_dataset
203 | common_io_file.sanitize_uri
    |                ^^^^^^^^^^^^ AIR302
204 | 
205 | # airflow.providers.fab
    |
    = help: Use `airflow.providers.common.io.assets.file.sanitize_uri` instead

AIR302_names.py:206:18: AIR302 `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_dataset` is removed in Airflow 3.0
    |
205 | # airflow.providers.fab
206 | fab_auth_manager.is_authorized_dataset
    |                  ^^^^^^^^^^^^^^^^^^^^^ AIR302
207 | 
208 | # airflow.providers.google
    |
    = help: Use `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_asset` instead

AIR302_names.py:211:5: AIR302 `airflow.providers.google.datasets.gcs.create_dataset` is removed in Airflow 3.0
    |
209 | bigquery.sanitize_uri
210 | 
211 | gcs.create_dataset
    |     ^^^^^^^^^^^^^^ AIR302
212 | gcs.sanitize_uri
213 | gcs.convert_dataset_to_openlineage
    |
    = help: Use `airflow.providers.google.assets.gcs.create_asset` instead

AIR302_names.py:212:5: AIR302 `airflow.providers.google.datasets.gcs.sanitize_uri` is removed in Airflow 3.0
    |
211 | gcs.create_dataset
212 | gcs.sanitize_uri
    |     ^^^^^^^^^^^^ AIR302
213 | gcs.convert_dataset_to_openlineage
    |
    = help: Use `airflow.providers.google.assets.gcs.sanitize_uri` instead

AIR302_names.py:213:5: AIR302 `airflow.providers.google.datasets.gcs.convert_dataset_to_openlineage` is removed in Airflow 3.0
    |
211 | gcs.create_dataset
212 | gcs.sanitize_uri
213 | gcs.convert_dataset_to_openlineage
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
214 | 
215 | # airflow.providers.mysql
    |
    = help: Use `airflow.providers.google.assets.gcs.convert_asset_to_openlineage` instead

AIR302_names.py:216:7: AIR302 `airflow.providers.mysql.datasets.mysql.sanitize_uri` is removed in Airflow 3.0
    |
215 | # airflow.providers.mysql
216 | mysql.sanitize_uri
    |       ^^^^^^^^^^^^ AIR302
217 | 
218 | # airflow.providers.openlineage
    |
    = help: Use `airflow.providers.mysql.assets.mysql.sanitize_uri` instead

AIR302_names.py:219:1: AIR302 `airflow.providers.openlineage.utils.utils.DatasetInfo` is removed in Airflow 3.0
    |
218 | # airflow.providers.openlineage
219 | DatasetInfo(), translate_airflow_dataset
    | ^^^^^^^^^^^ AIR302
220 | 
221 | # airflow.providers.postgres
    |
    = help: Use `airflow.providers.openlineage.utils.utils.AssetInfo` instead

AIR302_names.py:219:16: AIR302 `airflow.providers.openlineage.utils.utils.translate_airflow_dataset` is removed in Airflow 3.0
    |
218 | # airflow.providers.openlineage
219 | DatasetInfo(), translate_airflow_dataset
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
220 | 
221 | # airflow.providers.postgres
    |
    = help: Use `airflow.providers.openlineage.utils.utils.translate_airflow_asset` instead

AIR302_names.py:222:10: AIR302 `airflow.providers.postgres.datasets.postgres.sanitize_uri` is removed in Airflow 3.0
    |
221 | # airflow.providers.postgres
222 | postgres.sanitize_uri
    |          ^^^^^^^^^^^^ AIR302
223 | 
224 | # airflow.providers.trino
    |
    = help: Use `airflow.providers.postgres.assets.postgres.sanitize_uri` instead

AIR302_names.py:225:7: AIR302 `airflow.providers.trino.datasets.trino.sanitize_uri` is removed in Airflow 3.0
    |
224 | # airflow.providers.trino
225 | trino.sanitize_uri
    |       ^^^^^^^^^^^^ AIR302
226 | 
227 | # airflow.secrets
    |
    = help: Use `airflow.providers.trino.assets.trino.sanitize_uri` instead

AIR302_names.py:228:1: AIR302 `airflow.secrets.local_filesystem.get_connection` is removed in Airflow 3.0
    |
227 | # airflow.secrets
228 | get_connection, load_connections
    | ^^^^^^^^^^^^^^ AIR302
229 | 
230 | # airflow.security.permissions
    |
    = help: Use `airflow.secrets.local_filesystem.load_connections_dict` instead

AIR302_names.py:228:17: AIR302 `airflow.secrets.local_filesystem.load_connections` is removed in Airflow 3.0
    |
227 | # airflow.secrets
228 | get_connection, load_connections
    |                 ^^^^^^^^^^^^^^^^ AIR302
229 | 
230 | # airflow.security.permissions
    |
    = help: Use `airflow.secrets.local_filesystem.load_connections_dict` instead

AIR302_names.py:231:1: AIR302 `airflow.security.permissions.RESOURCE_DATASET` is removed in Airflow 3.0
    |
230 | # airflow.security.permissions
231 | RESOURCE_DATASET
    | ^^^^^^^^^^^^^^^^ AIR302
232 | 
233 | # airflow.sensors.base_sensor_operator
    |
    = help: Use `airflow.security.permissions.RESOURCE_ASSET` instead

AIR302_names.py:234:1: AIR302 `airflow.sensors.base_sensor_operator.BaseSensorOperator` is removed in Airflow 3.0
    |
233 | # airflow.sensors.base_sensor_operator
234 | BaseSensorOperator()
    | ^^^^^^^^^^^^^^^^^^ AIR302
235 | 
236 | # airflow.sensors.date_time_sensor
    |
    = help: Use `airflow.sensors.base.BaseSensorOperator` instead

AIR302_names.py:237:1: AIR302 `airflow.sensors.date_time_sensor.DateTimeSensor` is removed in Airflow 3.0
    |
236 | # airflow.sensors.date_time_sensor
237 | DateTimeSensor()
    | ^^^^^^^^^^^^^^ AIR302
238 | 
239 | # airflow.sensors.external_task
    |
    = help: Use `airflow.sensors.date_time.DateTimeSensor` instead

AIR302_names.py:240:1: AIR302 `airflow.sensors.external_task.ExternalTaskSensorLink` is removed in Airflow 3.0
    |
239 | # airflow.sensors.external_task
240 | ExternalTaskSensorLinkFromExternalTask()
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
241 | 
242 | # airflow.sensors.external_task_sensor
    |
    = help: Use `airflow.sensors.external_task.ExternalDagLink` instead

AIR302_names.py:243:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskMarker` is removed in Airflow 3.0
    |
242 | # airflow.sensors.external_task_sensor
243 | ExternalTaskMarker()
    | ^^^^^^^^^^^^^^^^^^ AIR302
244 | ExternalTaskSensor()
245 | ExternalTaskSensorLinkFromExternalTaskSensor()
    |
    = help: Use `airflow.sensors.external_task.ExternalTaskMarker` instead

AIR302_names.py:244:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensor` is removed in Airflow 3.0
    |
242 | # airflow.sensors.external_task_sensor
243 | ExternalTaskMarker()
244 | ExternalTaskSensor()
    | ^^^^^^^^^^^^^^^^^^ AIR302
245 | ExternalTaskSensorLinkFromExternalTaskSensor()
    |
    = help: Use `airflow.sensors.external_task.ExternalTaskSensor` instead

AIR302_names.py:245:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is removed in Airflow 3.0
    |
243 | ExternalTaskMarker()
244 | ExternalTaskSensor()
245 | ExternalTaskSensorLinkFromExternalTaskSensor()
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
246 | 
247 | # airflow.sensors.time_delta_sensor
    |
    = help: Use `airflow.sensors.external_task.ExternalDagLink` instead

AIR302_names.py:248:1: AIR302 `airflow.sensors.time_delta_sensor.TimeDeltaSensor` is removed in Airflow 3.0
    |
247 | # airflow.sensors.time_delta_sensor
248 | TimeDeltaSensor()
    | ^^^^^^^^^^^^^^^ AIR302
249 | 
250 | # airflow.timetables
    |
    = help: Use `airflow.sensors.time_delta.TimeDeltaSensor` instead

AIR302_names.py:251:1: AIR302 `airflow.timetables.datasets.DatasetOrTimeSchedule` is removed in Airflow 3.0
    |
250 | # airflow.timetables
251 | DatasetOrTimeSchedule()
    | ^^^^^^^^^^^^^^^^^^^^^ AIR302
252 | DatasetTriggeredTimetable()
    |
    = help: Use `airflow.timetables.assets.AssetOrTimeSchedule` instead

AIR302_names.py:252:1: AIR302 `airflow.timetables.simple.DatasetTriggeredTimetable` is removed in Airflow 3.0
    |
250 | # airflow.timetables
251 | DatasetOrTimeSchedule()
252 | DatasetTriggeredTimetable()
    | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
253 | 
254 | # airflow.triggers.external_task
    |
    = help: Use `airflow.timetables.simple.AssetTriggeredTimetable` instead

AIR302_names.py:255:1: AIR302 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0
    |
254 | # airflow.triggers.external_task
255 | TaskStateTrigger()
    | ^^^^^^^^^^^^^^^^ AIR302
256 | 
257 | # airflow.utils.date
    |

AIR302_names.py:258:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0
    |
257 | # airflow.utils.date
258 | dates.date_range
    |       ^^^^^^^^^^ AIR302
259 | dates.days_ago
    |
    = help: Use `airflow.timetables.` instead

AIR302_names.py:259:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0
    |
257 | # airflow.utils.date
258 | dates.date_range
259 | dates.days_ago
    |       ^^^^^^^^ AIR302
260 | 
261 | date_range
    |
    = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead

AIR302_names.py:261:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0
    |
259 | dates.days_ago
260 | 
261 | date_range
    | ^^^^^^^^^^ AIR302
262 | days_ago
263 | infer_time_unit
    |
    = help: Use `airflow.timetables.` instead

AIR302_names.py:262:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0
    |
261 | date_range
262 | days_ago
    | ^^^^^^^^ AIR302
263 | infer_time_unit
264 | parse_execution_date
    |
    = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead

AIR302_names.py:263:1: AIR302 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0
    |
261 | date_range
262 | days_ago
263 | infer_time_unit
    | ^^^^^^^^^^^^^^^ AIR302
264 | parse_execution_date
265 | round_time
    |

AIR302_names.py:264:1: AIR302 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0
    |
262 | days_ago
263 | infer_time_unit
264 | parse_execution_date
    | ^^^^^^^^^^^^^^^^^^^^ AIR302
265 | round_time
266 | scale_time_units
    |

AIR302_names.py:265:1: AIR302 `airflow.utils.dates.round_time` is removed in Airflow 3.0
    |
263 | infer_time_unit
264 | parse_execution_date
265 | round_time
    | ^^^^^^^^^^ AIR302
266 | scale_time_units
    |

AIR302_names.py:266:1: AIR302 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0
    |
264 | parse_execution_date
265 | round_time
266 | scale_time_units
    | ^^^^^^^^^^^^^^^^ AIR302
267 | 
268 | # This one was not deprecated.
    |

AIR302_names.py:273:1: AIR302 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0
    |
272 | # airflow.utils.dag_cycle_tester
273 | test_cycle
    | ^^^^^^^^^^ AIR302
274 | 
275 | # airflow.utils.decorators
    |

AIR302_names.py:276:1: AIR302 `airflow.utils.decorators.apply_defaults` is removed in Airflow 3.0; `apply_defaults` is now unconditionally done and can be safely removed.
    |
275 | # airflow.utils.decorators
276 | apply_defaults
    | ^^^^^^^^^^^^^^ AIR302
277 | 
278 | # airflow.utils.file
    |

AIR302_names.py:279:22: AIR302 `airflow.utils.file.mkdirs` is removed in Airflow 3.0
    |
278 | # airflow.utils.file
279 | TemporaryDirector(), mkdirs
    |                      ^^^^^^ AIR302
280 | 
281 | #  airflow.utils.helpers
    |
    = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead

AIR302_names.py:282:1: AIR302 `airflow.utils.helpers.chain` is removed in Airflow 3.0
    |
281 | #  airflow.utils.helpers
282 | chain, cross_downstream
    | ^^^^^ AIR302
283 | 
284 | # airflow.utils.state
    |
    = help: Use `airflow.models.baseoperator.chain` instead

AIR302_names.py:282:8: AIR302 `airflow.utils.helpers.cross_downstream` is removed in Airflow 3.0
    |
281 | #  airflow.utils.helpers
282 | chain, cross_downstream
    |        ^^^^^^^^^^^^^^^^ AIR302
283 | 
284 | # airflow.utils.state
    |
    = help: Use `airflow.models.baseoperator.cross_downstream` instead

AIR302_names.py:285:1: AIR302 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0
    |
284 | # airflow.utils.state
285 | SHUTDOWN, terminating_states
    | ^^^^^^^^ AIR302
286 | 
287 | #  airflow.utils.trigger_rule
    |

AIR302_names.py:285:11: AIR302 `airflow.utils.state.terminating_states` is removed in Airflow 3.0
    |
284 | # airflow.utils.state
285 | SHUTDOWN, terminating_states
    |           ^^^^^^^^^^^^^^^^^^ AIR302
286 | 
287 | #  airflow.utils.trigger_rule
    |

AIR302_names.py:288:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.DUMMY` is removed in Airflow 3.0
    |
287 | #  airflow.utils.trigger_rule
288 | TriggerRule.DUMMY
    |             ^^^^^ AIR302
289 | TriggerRule.NONE_FAILED_OR_SKIPPED
    |

AIR302_names.py:289:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.NONE_FAILED_OR_SKIPPED` is removed in Airflow 3.0
    |
287 | #  airflow.utils.trigger_rule
288 | TriggerRule.DUMMY
289 | TriggerRule.NONE_FAILED_OR_SKIPPED
    |             ^^^^^^^^^^^^^^^^^^^^^^ AIR302
290 | 
291 | # airflow.www.auth
    |

AIR302_names.py:292:1: AIR302 `airflow.www.auth.has_access` is removed in Airflow 3.0
    |
291 | # airflow.www.auth
292 | has_access
    | ^^^^^^^^^^ AIR302
293 | has_access_dataset
    |
    = help: Use `airflow.www.auth.has_access_*` instead

AIR302_names.py:293:1: AIR302 `airflow.www.auth.has_access_dataset` is removed in Airflow 3.0
    |
291 | # airflow.www.auth
292 | has_access
293 | has_access_dataset
    | ^^^^^^^^^^^^^^^^^^ AIR302
294 | 
295 | # airflow.www.utils
    |
    = help: Use `airflow.www.auth.has_access_dataset.has_access_asset` instead

AIR302_names.py:296:1: AIR302 `airflow.www.utils.get_sensitive_variables_fields` is removed in Airflow 3.0
    |
295 | # airflow.www.utils
296 | get_sensitive_variables_fields, should_hide_value_for_key
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
    |
    = help: Use `airflow.utils.log.secrets_masker.get_sensitive_variables_fields` instead

AIR302_names.py:296:33: AIR302 `airflow.www.utils.should_hide_value_for_key` is removed in Airflow 3.0
    |
295 | # airflow.www.utils
296 | get_sensitive_variables_fields, should_hide_value_for_key
    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
    |
    = help: Use `airflow.utils.log.secrets_masker.should_hide_value_for_key` instead
