diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_airflow_plugin.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR301_airflow_plugin.py similarity index 100% rename from crates/ruff_linter/resources/test/fixtures/airflow/AIR302_airflow_plugin.py rename to crates/ruff_linter/resources/test/fixtures/airflow/AIR301_airflow_plugin.py diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_args.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR301_args.py similarity index 100% rename from crates/ruff_linter/resources/test/fixtures/airflow/AIR302_args.py rename to crates/ruff_linter/resources/test/fixtures/airflow/AIR301_args.py diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_class_attribute.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR301_class_attribute.py similarity index 100% rename from crates/ruff_linter/resources/test/fixtures/airflow/AIR302_class_attribute.py rename to crates/ruff_linter/resources/test/fixtures/airflow/AIR301_class_attribute.py diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_context.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR301_context.py similarity index 100% rename from crates/ruff_linter/resources/test/fixtures/airflow/AIR302_context.py rename to crates/ruff_linter/resources/test/fixtures/airflow/AIR301_context.py diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR301_names.py similarity index 100% rename from crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names.py rename to crates/ruff_linter/resources/test/fixtures/airflow/AIR301_names.py diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names_try.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR301_names_try.py similarity index 100% rename from crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names_try.py rename to crates/ruff_linter/resources/test/fixtures/airflow/AIR301_names_try.py diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR303.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR302.py similarity index 100% rename from crates/ruff_linter/resources/test/fixtures/airflow/AIR303.py rename to crates/ruff_linter/resources/test/fixtures/airflow/AIR302.py diff --git a/crates/ruff_linter/src/codes.rs b/crates/ruff_linter/src/codes.rs index 762152bae5..1d31cb69f0 100644 --- a/crates/ruff_linter/src/codes.rs +++ b/crates/ruff_linter/src/codes.rs @@ -1069,8 +1069,8 @@ pub fn code_to_rule(linter: Linter, code: &str) -> Option<(RuleGroup, Rule)> { // airflow (Airflow, "001") => (RuleGroup::Stable, rules::airflow::rules::AirflowVariableNameTaskIdMismatch), (Airflow, "002") => (RuleGroup::Preview, rules::airflow::rules::AirflowDagNoScheduleArgument), - (Airflow, "302") => (RuleGroup::Preview, rules::airflow::rules::Airflow3Removal), - (Airflow, "303") => (RuleGroup::Preview, rules::airflow::rules::Airflow3MovedToProvider), + (Airflow, "301") => (RuleGroup::Preview, rules::airflow::rules::Airflow3Removal), + (Airflow, "302") => (RuleGroup::Preview, rules::airflow::rules::Airflow3MovedToProvider), // perflint (Perflint, "101") => (RuleGroup::Stable, rules::perflint::rules::UnnecessaryListCast), diff --git a/crates/ruff_linter/src/rules/airflow/mod.rs b/crates/ruff_linter/src/rules/airflow/mod.rs index deec05bae5..466a189996 100644 --- a/crates/ruff_linter/src/rules/airflow/mod.rs +++ b/crates/ruff_linter/src/rules/airflow/mod.rs @@ -15,13 +15,13 @@ mod tests { #[test_case(Rule::AirflowVariableNameTaskIdMismatch, Path::new("AIR001.py"))] #[test_case(Rule::AirflowDagNoScheduleArgument, Path::new("AIR002.py"))] - #[test_case(Rule::Airflow3Removal, Path::new("AIR302_args.py"))] - #[test_case(Rule::Airflow3Removal, Path::new("AIR302_names.py"))] - #[test_case(Rule::Airflow3Removal, Path::new("AIR302_names_try.py"))] - #[test_case(Rule::Airflow3Removal, Path::new("AIR302_class_attribute.py"))] - #[test_case(Rule::Airflow3Removal, Path::new("AIR302_airflow_plugin.py"))] - #[test_case(Rule::Airflow3Removal, Path::new("AIR302_context.py"))] - #[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR303.py"))] + #[test_case(Rule::Airflow3Removal, Path::new("AIR301_args.py"))] + #[test_case(Rule::Airflow3Removal, Path::new("AIR301_names.py"))] + #[test_case(Rule::Airflow3Removal, Path::new("AIR301_names_try.py"))] + #[test_case(Rule::Airflow3Removal, Path::new("AIR301_class_attribute.py"))] + #[test_case(Rule::Airflow3Removal, Path::new("AIR301_airflow_plugin.py"))] + #[test_case(Rule::Airflow3Removal, Path::new("AIR301_context.py"))] + #[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302.py"))] fn rules(rule_code: Rule, path: &Path) -> Result<()> { let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy()); let diagnostics = test_path( diff --git a/crates/ruff_linter/src/rules/airflow/rules/dag_schedule_argument.rs b/crates/ruff_linter/src/rules/airflow/rules/dag_schedule_argument.rs index 73f48cfc3e..79abcf278b 100644 --- a/crates/ruff_linter/src/rules/airflow/rules/dag_schedule_argument.rs +++ b/crates/ruff_linter/src/rules/airflow/rules/dag_schedule_argument.rs @@ -77,7 +77,7 @@ pub(crate) fn dag_no_schedule_argument(checker: &Checker, expr: &Expr) { // If there's a schedule keyword argument, we are good. // This includes the canonical 'schedule', and the deprecated 'timetable' // and 'schedule_interval'. Usages of deprecated schedule arguments are - // covered by AIR302. + // covered by AIR301. if ["schedule", "schedule_interval", "timetable"] .iter() .any(|a| arguments.find_keyword(a).is_some()) diff --git a/crates/ruff_linter/src/rules/airflow/rules/moved_to_provider_in_3.rs b/crates/ruff_linter/src/rules/airflow/rules/moved_to_provider_in_3.rs index 805e507237..3db518dff2 100644 --- a/crates/ruff_linter/src/rules/airflow/rules/moved_to_provider_in_3.rs +++ b/crates/ruff_linter/src/rules/airflow/rules/moved_to_provider_in_3.rs @@ -82,7 +82,7 @@ impl Violation for Airflow3MovedToProvider { } } -/// AIR303 +/// AIR302 pub(crate) fn moved_to_provider_in_3(checker: &Checker, expr: &Expr) { if !checker.semantic().seen_module(Modules::AIRFLOW) { return; diff --git a/crates/ruff_linter/src/rules/airflow/rules/removal_in_3.rs b/crates/ruff_linter/src/rules/airflow/rules/removal_in_3.rs index 3e7a9f0608..991573d228 100644 --- a/crates/ruff_linter/src/rules/airflow/rules/removal_in_3.rs +++ b/crates/ruff_linter/src/rules/airflow/rules/removal_in_3.rs @@ -77,7 +77,7 @@ impl Violation for Airflow3Removal { } } -/// AIR302 +/// AIR301 pub(crate) fn airflow_3_removal_expr(checker: &Checker, expr: &Expr) { if !checker.semantic().seen_module(Modules::AIRFLOW) { return; @@ -114,7 +114,7 @@ pub(crate) fn airflow_3_removal_expr(checker: &Checker, expr: &Expr) { } } -/// AIR302 +/// AIR301 pub(crate) fn airflow_3_removal_function_def(checker: &Checker, function_def: &StmtFunctionDef) { if !checker.semantic().seen_module(Modules::AIRFLOW) { return; diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_airflow_plugin.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_airflow_plugin.py.snap similarity index 75% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_airflow_plugin.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_airflow_plugin.py.snap index e94bafe216..dc16e1812b 100644 --- a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_airflow_plugin.py.snap +++ b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_airflow_plugin.py.snap @@ -1,43 +1,42 @@ --- source: crates/ruff_linter/src/rules/airflow/mod.rs -snapshot_kind: text --- -AIR302_airflow_plugin.py:7:5: AIR302 `operators` is removed in Airflow 3.0; This extension should just be imported as a regular python module. +AIR301_airflow_plugin.py:7:5: AIR301 `operators` is removed in Airflow 3.0; This extension should just be imported as a regular python module. | 5 | name = "test_plugin" 6 | # --- Invalid extensions start 7 | operators = [PluginOperator] - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 8 | sensors = [PluginSensorOperator] 9 | hooks = [PluginHook] | -AIR302_airflow_plugin.py:8:5: AIR302 `sensors` is removed in Airflow 3.0; This extension should just be imported as a regular python module. +AIR301_airflow_plugin.py:8:5: AIR301 `sensors` is removed in Airflow 3.0; This extension should just be imported as a regular python module. | 6 | # --- Invalid extensions start 7 | operators = [PluginOperator] 8 | sensors = [PluginSensorOperator] - | ^^^^^^^ AIR302 + | ^^^^^^^ AIR301 9 | hooks = [PluginHook] 10 | executors = [PluginExecutor] | -AIR302_airflow_plugin.py:9:5: AIR302 `hooks` is removed in Airflow 3.0; This extension should just be imported as a regular python module. +AIR301_airflow_plugin.py:9:5: AIR301 `hooks` is removed in Airflow 3.0; This extension should just be imported as a regular python module. | 7 | operators = [PluginOperator] 8 | sensors = [PluginSensorOperator] 9 | hooks = [PluginHook] - | ^^^^^ AIR302 + | ^^^^^ AIR301 10 | executors = [PluginExecutor] 11 | # --- Invalid extensions end | -AIR302_airflow_plugin.py:10:5: AIR302 `executors` is removed in Airflow 3.0; This extension should just be imported as a regular python module. +AIR301_airflow_plugin.py:10:5: AIR301 `executors` is removed in Airflow 3.0; This extension should just be imported as a regular python module. | 8 | sensors = [PluginSensorOperator] 9 | hooks = [PluginHook] 10 | executors = [PluginExecutor] - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 11 | # --- Invalid extensions end 12 | macros = [plugin_macro] | diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_args.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_args.py.snap similarity index 78% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_args.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_args.py.snap index f3367a2563..e3978f3c14 100644 --- a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_args.py.snap +++ b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_args.py.snap @@ -1,12 +1,12 @@ --- source: crates/ruff_linter/src/rules/airflow/mod.rs --- -AIR302_args.py:20:39: AIR302 [*] `schedule_interval` is removed in Airflow 3.0 +AIR301_args.py:20:39: AIR301 [*] `schedule_interval` is removed in Airflow 3.0 | 18 | DAG(dag_id="class_schedule", schedule="@hourly") 19 | 20 | DAG(dag_id="class_schedule_interval", schedule_interval="@hourly") - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 21 | 22 | DAG(dag_id="class_timetable", timetable=NullTimetable()) | @@ -22,12 +22,12 @@ AIR302_args.py:20:39: AIR302 [*] `schedule_interval` is removed in Airflow 3.0 22 22 | DAG(dag_id="class_timetable", timetable=NullTimetable()) 23 23 | -AIR302_args.py:22:31: AIR302 [*] `timetable` is removed in Airflow 3.0 +AIR301_args.py:22:31: AIR301 [*] `timetable` is removed in Airflow 3.0 | 20 | DAG(dag_id="class_schedule_interval", schedule_interval="@hourly") 21 | 22 | DAG(dag_id="class_timetable", timetable=NullTimetable()) - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 | = help: Use `schedule` instead @@ -41,20 +41,20 @@ AIR302_args.py:22:31: AIR302 [*] `timetable` is removed in Airflow 3.0 24 24 | 25 25 | def sla_callback(*arg, **kwargs): -AIR302_args.py:29:34: AIR302 `sla_miss_callback` is removed in Airflow 3.0 +AIR301_args.py:29:34: AIR301 `sla_miss_callback` is removed in Airflow 3.0 | 29 | DAG(dag_id="class_sla_callback", sla_miss_callback=sla_callback) - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 30 | 31 | DAG(dag_id="class_fail_stop", fail_stop=True) | -AIR302_args.py:31:31: AIR302 [*] `fail_stop` is removed in Airflow 3.0 +AIR301_args.py:31:31: AIR301 [*] `fail_stop` is removed in Airflow 3.0 | 29 | DAG(dag_id="class_sla_callback", sla_miss_callback=sla_callback) 30 | 31 | DAG(dag_id="class_fail_stop", fail_stop=True) - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 32 | 33 | DAG(dag_id="class_default_view", default_view="dag_default_view") | @@ -70,30 +70,30 @@ AIR302_args.py:31:31: AIR302 [*] `fail_stop` is removed in Airflow 3.0 33 33 | DAG(dag_id="class_default_view", default_view="dag_default_view") 34 34 | -AIR302_args.py:33:34: AIR302 `default_view` is removed in Airflow 3.0 +AIR301_args.py:33:34: AIR301 `default_view` is removed in Airflow 3.0 | 31 | DAG(dag_id="class_fail_stop", fail_stop=True) 32 | 33 | DAG(dag_id="class_default_view", default_view="dag_default_view") - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 34 | 35 | DAG(dag_id="class_orientation", orientation="BT") | -AIR302_args.py:35:33: AIR302 `orientation` is removed in Airflow 3.0 +AIR301_args.py:35:33: AIR301 `orientation` is removed in Airflow 3.0 | 33 | DAG(dag_id="class_default_view", default_view="dag_default_view") 34 | 35 | DAG(dag_id="class_orientation", orientation="BT") - | ^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^ AIR301 36 | 37 | allow_future_exec_dates_dag = DAG(dag_id="class_allow_future_exec_dates") | -AIR302_args.py:46:6: AIR302 [*] `schedule_interval` is removed in Airflow 3.0 +AIR301_args.py:46:6: AIR301 [*] `schedule_interval` is removed in Airflow 3.0 | 46 | @dag(schedule_interval="0 * * * *") - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 47 | def decorator_schedule_interval(): 48 | pass | @@ -109,10 +109,10 @@ AIR302_args.py:46:6: AIR302 [*] `schedule_interval` is removed in Airflow 3.0 48 48 | pass 49 49 | -AIR302_args.py:51:6: AIR302 [*] `timetable` is removed in Airflow 3.0 +AIR301_args.py:51:6: AIR301 [*] `timetable` is removed in Airflow 3.0 | 51 | @dag(timetable=NullTimetable()) - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 52 | def decorator_timetable(): 53 | pass | @@ -128,20 +128,20 @@ AIR302_args.py:51:6: AIR302 [*] `timetable` is removed in Airflow 3.0 53 53 | pass 54 54 | -AIR302_args.py:56:6: AIR302 `sla_miss_callback` is removed in Airflow 3.0 +AIR301_args.py:56:6: AIR301 `sla_miss_callback` is removed in Airflow 3.0 | 56 | @dag(sla_miss_callback=sla_callback) - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 57 | def decorator_sla_callback(): 58 | pass | -AIR302_args.py:64:39: AIR302 [*] `execution_date` is removed in Airflow 3.0 +AIR301_args.py:64:39: AIR301 [*] `execution_date` is removed in Airflow 3.0 | 62 | def decorator_deprecated_operator_args(): 63 | trigger_dagrun_op = trigger_dagrun.TriggerDagRunOperator( 64 | task_id="trigger_dagrun_op1", execution_date="2024-12-04" - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 65 | ) 66 | trigger_dagrun_op2 = TriggerDagRunOperator( | @@ -157,12 +157,12 @@ AIR302_args.py:64:39: AIR302 [*] `execution_date` is removed in Airflow 3.0 66 66 | trigger_dagrun_op2 = TriggerDagRunOperator( 67 67 | task_id="trigger_dagrun_op2", execution_date="2024-12-04" -AIR302_args.py:67:39: AIR302 [*] `execution_date` is removed in Airflow 3.0 +AIR301_args.py:67:39: AIR301 [*] `execution_date` is removed in Airflow 3.0 | 65 | ) 66 | trigger_dagrun_op2 = TriggerDagRunOperator( 67 | task_id="trigger_dagrun_op2", execution_date="2024-12-04" - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 68 | ) | = help: Use `logical_date` instead @@ -177,11 +177,11 @@ AIR302_args.py:67:39: AIR302 [*] `execution_date` is removed in Airflow 3.0 69 69 | 70 70 | branch_dt_op = datetime.BranchDateTimeOperator( -AIR302_args.py:71:33: AIR302 [*] `use_task_execution_day` is removed in Airflow 3.0 +AIR301_args.py:71:33: AIR301 [*] `use_task_execution_day` is removed in Airflow 3.0 | 70 | branch_dt_op = datetime.BranchDateTimeOperator( 71 | task_id="branch_dt_op", use_task_execution_day=True, task_concurrency=5 - | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR301 72 | ) 73 | branch_dt_op2 = BranchDateTimeOperator( | @@ -197,11 +197,11 @@ AIR302_args.py:71:33: AIR302 [*] `use_task_execution_day` is removed in Airflow 73 73 | branch_dt_op2 = BranchDateTimeOperator( 74 74 | task_id="branch_dt_op2", -AIR302_args.py:71:62: AIR302 [*] `task_concurrency` is removed in Airflow 3.0 +AIR301_args.py:71:62: AIR301 [*] `task_concurrency` is removed in Airflow 3.0 | 70 | branch_dt_op = datetime.BranchDateTimeOperator( 71 | task_id="branch_dt_op", use_task_execution_day=True, task_concurrency=5 - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 72 | ) 73 | branch_dt_op2 = BranchDateTimeOperator( | @@ -217,12 +217,12 @@ AIR302_args.py:71:62: AIR302 [*] `task_concurrency` is removed in Airflow 3.0 73 73 | branch_dt_op2 = BranchDateTimeOperator( 74 74 | task_id="branch_dt_op2", -AIR302_args.py:75:9: AIR302 [*] `use_task_execution_day` is removed in Airflow 3.0 +AIR301_args.py:75:9: AIR301 [*] `use_task_execution_day` is removed in Airflow 3.0 | 73 | branch_dt_op2 = BranchDateTimeOperator( 74 | task_id="branch_dt_op2", 75 | use_task_execution_day=True, - | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR301 76 | sla=timedelta(seconds=10), 77 | ) | @@ -238,57 +238,57 @@ AIR302_args.py:75:9: AIR302 [*] `use_task_execution_day` is removed in Airflow 3 77 77 | ) 78 78 | -AIR302_args.py:76:9: AIR302 `sla` is removed in Airflow 3.0 +AIR301_args.py:76:9: AIR301 `sla` is removed in Airflow 3.0 | 74 | task_id="branch_dt_op2", 75 | use_task_execution_day=True, 76 | sla=timedelta(seconds=10), - | ^^^ AIR302 + | ^^^ AIR301 77 | ) | -AIR302_args.py:98:15: AIR302 `filename_template` is removed in Airflow 3.0 +AIR301_args.py:98:15: AIR301 `filename_template` is removed in Airflow 3.0 | 97 | # deprecated filename_template argument in FileTaskHandler 98 | S3TaskHandler(filename_template="/tmp/test") - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 99 | HdfsTaskHandler(filename_template="/tmp/test") 100 | ElasticsearchTaskHandler(filename_template="/tmp/test") | -AIR302_args.py:99:17: AIR302 `filename_template` is removed in Airflow 3.0 +AIR301_args.py:99:17: AIR301 `filename_template` is removed in Airflow 3.0 | 97 | # deprecated filename_template argument in FileTaskHandler 98 | S3TaskHandler(filename_template="/tmp/test") 99 | HdfsTaskHandler(filename_template="/tmp/test") - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 100 | ElasticsearchTaskHandler(filename_template="/tmp/test") 101 | GCSTaskHandler(filename_template="/tmp/test") | -AIR302_args.py:100:26: AIR302 `filename_template` is removed in Airflow 3.0 +AIR301_args.py:100:26: AIR301 `filename_template` is removed in Airflow 3.0 | 98 | S3TaskHandler(filename_template="/tmp/test") 99 | HdfsTaskHandler(filename_template="/tmp/test") 100 | ElasticsearchTaskHandler(filename_template="/tmp/test") - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 101 | GCSTaskHandler(filename_template="/tmp/test") | -AIR302_args.py:101:16: AIR302 `filename_template` is removed in Airflow 3.0 +AIR301_args.py:101:16: AIR301 `filename_template` is removed in Airflow 3.0 | 99 | HdfsTaskHandler(filename_template="/tmp/test") 100 | ElasticsearchTaskHandler(filename_template="/tmp/test") 101 | GCSTaskHandler(filename_template="/tmp/test") - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 102 | 103 | FabAuthManager(None) | -AIR302_args.py:103:15: AIR302 `appbuilder` is removed in Airflow 3.0; The constructor takes no parameter now +AIR301_args.py:103:15: AIR301 `appbuilder` is removed in Airflow 3.0; The constructor takes no parameter now | 101 | GCSTaskHandler(filename_template="/tmp/test") 102 | 103 | FabAuthManager(None) - | ^^^^^^ AIR302 + | ^^^^^^ AIR301 | diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_class_attribute.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_class_attribute.py.snap similarity index 82% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_class_attribute.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_class_attribute.py.snap index 18fb9d67e7..6683fa3177 100644 --- a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_class_attribute.py.snap +++ b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_class_attribute.py.snap @@ -1,11 +1,11 @@ --- source: crates/ruff_linter/src/rules/airflow/mod.rs --- -AIR302_class_attribute.py:24:21: AIR302 [*] `airflow.Dataset` is removed in Airflow 3.0 +AIR301_class_attribute.py:24:21: AIR301 [*] `airflow.Dataset` is removed in Airflow 3.0 | 23 | # airflow.Dataset 24 | dataset_from_root = DatasetFromRoot() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 25 | dataset_from_root.iter_datasets() 26 | dataset_from_root.iter_dataset_aliases() | @@ -24,12 +24,12 @@ AIR302_class_attribute.py:24:21: AIR302 [*] `airflow.Dataset` is removed in Airf 26 27 | dataset_from_root.iter_dataset_aliases() 27 28 | -AIR302_class_attribute.py:25:19: AIR302 [*] `iter_datasets` is removed in Airflow 3.0 +AIR301_class_attribute.py:25:19: AIR301 [*] `iter_datasets` is removed in Airflow 3.0 | 23 | # airflow.Dataset 24 | dataset_from_root = DatasetFromRoot() 25 | dataset_from_root.iter_datasets() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 26 | dataset_from_root.iter_dataset_aliases() | = help: Use `iter_assets` instead @@ -44,12 +44,12 @@ AIR302_class_attribute.py:25:19: AIR302 [*] `iter_datasets` is removed in Airflo 27 27 | 28 28 | # airflow.datasets -AIR302_class_attribute.py:26:19: AIR302 [*] `iter_dataset_aliases` is removed in Airflow 3.0 +AIR301_class_attribute.py:26:19: AIR301 [*] `iter_dataset_aliases` is removed in Airflow 3.0 | 24 | dataset_from_root = DatasetFromRoot() 25 | dataset_from_root.iter_datasets() 26 | dataset_from_root.iter_dataset_aliases() - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 27 | 28 | # airflow.datasets | @@ -65,11 +65,11 @@ AIR302_class_attribute.py:26:19: AIR302 [*] `iter_dataset_aliases` is removed in 28 28 | # airflow.datasets 29 29 | dataset_to_test_method_call = Dataset() -AIR302_class_attribute.py:29:31: AIR302 [*] `airflow.datasets.Dataset` is removed in Airflow 3.0 +AIR301_class_attribute.py:29:31: AIR301 [*] `airflow.datasets.Dataset` is removed in Airflow 3.0 | 28 | # airflow.datasets 29 | dataset_to_test_method_call = Dataset() - | ^^^^^^^ AIR302 + | ^^^^^^^ AIR301 30 | dataset_to_test_method_call.iter_datasets() 31 | dataset_to_test_method_call.iter_dataset_aliases() | @@ -93,12 +93,12 @@ AIR302_class_attribute.py:29:31: AIR302 [*] `airflow.datasets.Dataset` is remove 31 32 | dataset_to_test_method_call.iter_dataset_aliases() 32 33 | -AIR302_class_attribute.py:30:29: AIR302 [*] `iter_datasets` is removed in Airflow 3.0 +AIR301_class_attribute.py:30:29: AIR301 [*] `iter_datasets` is removed in Airflow 3.0 | 28 | # airflow.datasets 29 | dataset_to_test_method_call = Dataset() 30 | dataset_to_test_method_call.iter_datasets() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 31 | dataset_to_test_method_call.iter_dataset_aliases() | = help: Use `iter_assets` instead @@ -113,12 +113,12 @@ AIR302_class_attribute.py:30:29: AIR302 [*] `iter_datasets` is removed in Airflo 32 32 | 33 33 | alias_to_test_method_call = DatasetAlias() -AIR302_class_attribute.py:31:29: AIR302 [*] `iter_dataset_aliases` is removed in Airflow 3.0 +AIR301_class_attribute.py:31:29: AIR301 [*] `iter_dataset_aliases` is removed in Airflow 3.0 | 29 | dataset_to_test_method_call = Dataset() 30 | dataset_to_test_method_call.iter_datasets() 31 | dataset_to_test_method_call.iter_dataset_aliases() - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 32 | 33 | alias_to_test_method_call = DatasetAlias() | @@ -134,22 +134,22 @@ AIR302_class_attribute.py:31:29: AIR302 [*] `iter_dataset_aliases` is removed in 33 33 | alias_to_test_method_call = DatasetAlias() 34 34 | alias_to_test_method_call.iter_datasets() -AIR302_class_attribute.py:33:29: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 +AIR301_class_attribute.py:33:29: AIR301 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 | 31 | dataset_to_test_method_call.iter_dataset_aliases() 32 | 33 | alias_to_test_method_call = DatasetAlias() - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 34 | alias_to_test_method_call.iter_datasets() 35 | alias_to_test_method_call.iter_dataset_aliases() | = help: Use `airflow.sdk.AssetAlias` instead -AIR302_class_attribute.py:34:27: AIR302 [*] `iter_datasets` is removed in Airflow 3.0 +AIR301_class_attribute.py:34:27: AIR301 [*] `iter_datasets` is removed in Airflow 3.0 | 33 | alias_to_test_method_call = DatasetAlias() 34 | alias_to_test_method_call.iter_datasets() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 35 | alias_to_test_method_call.iter_dataset_aliases() | = help: Use `iter_assets` instead @@ -164,12 +164,12 @@ AIR302_class_attribute.py:34:27: AIR302 [*] `iter_datasets` is removed in Airflo 36 36 | 37 37 | any_to_test_method_call = DatasetAny() -AIR302_class_attribute.py:35:27: AIR302 [*] `iter_dataset_aliases` is removed in Airflow 3.0 +AIR301_class_attribute.py:35:27: AIR301 [*] `iter_dataset_aliases` is removed in Airflow 3.0 | 33 | alias_to_test_method_call = DatasetAlias() 34 | alias_to_test_method_call.iter_datasets() 35 | alias_to_test_method_call.iter_dataset_aliases() - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 36 | 37 | any_to_test_method_call = DatasetAny() | @@ -185,22 +185,22 @@ AIR302_class_attribute.py:35:27: AIR302 [*] `iter_dataset_aliases` is removed in 37 37 | any_to_test_method_call = DatasetAny() 38 38 | any_to_test_method_call.iter_datasets() -AIR302_class_attribute.py:37:27: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 +AIR301_class_attribute.py:37:27: AIR301 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 | 35 | alias_to_test_method_call.iter_dataset_aliases() 36 | 37 | any_to_test_method_call = DatasetAny() - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 38 | any_to_test_method_call.iter_datasets() 39 | any_to_test_method_call.iter_dataset_aliases() | = help: Use `airflow.sdk.AssetAny` instead -AIR302_class_attribute.py:38:25: AIR302 [*] `iter_datasets` is removed in Airflow 3.0 +AIR301_class_attribute.py:38:25: AIR301 [*] `iter_datasets` is removed in Airflow 3.0 | 37 | any_to_test_method_call = DatasetAny() 38 | any_to_test_method_call.iter_datasets() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 39 | any_to_test_method_call.iter_dataset_aliases() | = help: Use `iter_assets` instead @@ -215,12 +215,12 @@ AIR302_class_attribute.py:38:25: AIR302 [*] `iter_datasets` is removed in Airflo 40 40 | 41 41 | # airflow.datasets.manager -AIR302_class_attribute.py:39:25: AIR302 [*] `iter_dataset_aliases` is removed in Airflow 3.0 +AIR301_class_attribute.py:39:25: AIR301 [*] `iter_dataset_aliases` is removed in Airflow 3.0 | 37 | any_to_test_method_call = DatasetAny() 38 | any_to_test_method_call.iter_datasets() 39 | any_to_test_method_call.iter_dataset_aliases() - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 40 | 41 | # airflow.datasets.manager | @@ -236,22 +236,22 @@ AIR302_class_attribute.py:39:25: AIR302 [*] `iter_dataset_aliases` is removed in 41 41 | # airflow.datasets.manager 42 42 | dm = DatasetManager() -AIR302_class_attribute.py:42:6: AIR302 `airflow.datasets.manager.DatasetManager` is removed in Airflow 3.0 +AIR301_class_attribute.py:42:6: AIR301 `airflow.datasets.manager.DatasetManager` is removed in Airflow 3.0 | 41 | # airflow.datasets.manager 42 | dm = DatasetManager() - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 43 | dm.register_dataset_change() 44 | dm.create_datasets() | = help: Use `airflow.assets.AssetManager` instead -AIR302_class_attribute.py:43:4: AIR302 [*] `register_dataset_change` is removed in Airflow 3.0 +AIR301_class_attribute.py:43:4: AIR301 [*] `register_dataset_change` is removed in Airflow 3.0 | 41 | # airflow.datasets.manager 42 | dm = DatasetManager() 43 | dm.register_dataset_change() - | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^ AIR301 44 | dm.create_datasets() 45 | dm.notify_dataset_created() | @@ -267,12 +267,12 @@ AIR302_class_attribute.py:43:4: AIR302 [*] `register_dataset_change` is removed 45 45 | dm.notify_dataset_created() 46 46 | dm.notify_dataset_changed() -AIR302_class_attribute.py:44:4: AIR302 [*] `create_datasets` is removed in Airflow 3.0 +AIR301_class_attribute.py:44:4: AIR301 [*] `create_datasets` is removed in Airflow 3.0 | 42 | dm = DatasetManager() 43 | dm.register_dataset_change() 44 | dm.create_datasets() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 45 | dm.notify_dataset_created() 46 | dm.notify_dataset_changed() | @@ -288,12 +288,12 @@ AIR302_class_attribute.py:44:4: AIR302 [*] `create_datasets` is removed in Airfl 46 46 | dm.notify_dataset_changed() 47 47 | dm.notify_dataset_alias_created() -AIR302_class_attribute.py:45:4: AIR302 [*] `notify_dataset_created` is removed in Airflow 3.0 +AIR301_class_attribute.py:45:4: AIR301 [*] `notify_dataset_created` is removed in Airflow 3.0 | 43 | dm.register_dataset_change() 44 | dm.create_datasets() 45 | dm.notify_dataset_created() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR301 46 | dm.notify_dataset_changed() 47 | dm.notify_dataset_alias_created() | @@ -309,12 +309,12 @@ AIR302_class_attribute.py:45:4: AIR302 [*] `notify_dataset_created` is removed i 47 47 | dm.notify_dataset_alias_created() 48 48 | -AIR302_class_attribute.py:46:4: AIR302 [*] `notify_dataset_changed` is removed in Airflow 3.0 +AIR301_class_attribute.py:46:4: AIR301 [*] `notify_dataset_changed` is removed in Airflow 3.0 | 44 | dm.create_datasets() 45 | dm.notify_dataset_created() 46 | dm.notify_dataset_changed() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR301 47 | dm.notify_dataset_alias_created() | = help: Use `notify_asset_changed` instead @@ -329,12 +329,12 @@ AIR302_class_attribute.py:46:4: AIR302 [*] `notify_dataset_changed` is removed i 48 48 | 49 49 | # airflow.lineage.hook -AIR302_class_attribute.py:47:4: AIR302 [*] `notify_dataset_alias_created` is removed in Airflow 3.0 +AIR301_class_attribute.py:47:4: AIR301 [*] `notify_dataset_alias_created` is removed in Airflow 3.0 | 45 | dm.notify_dataset_created() 46 | dm.notify_dataset_changed() 47 | dm.notify_dataset_alias_created() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 48 | 49 | # airflow.lineage.hook | @@ -350,21 +350,21 @@ AIR302_class_attribute.py:47:4: AIR302 [*] `notify_dataset_alias_created` is rem 49 49 | # airflow.lineage.hook 50 50 | dl_info = DatasetLineageInfo() -AIR302_class_attribute.py:50:11: AIR302 `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0 +AIR301_class_attribute.py:50:11: AIR301 `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0 | 49 | # airflow.lineage.hook 50 | dl_info = DatasetLineageInfo() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 51 | dl_info.dataset | = help: Use `airflow.lineage.hook.AssetLineageInfo` instead -AIR302_class_attribute.py:51:9: AIR302 [*] `dataset` is removed in Airflow 3.0 +AIR301_class_attribute.py:51:9: AIR301 [*] `dataset` is removed in Airflow 3.0 | 49 | # airflow.lineage.hook 50 | dl_info = DatasetLineageInfo() 51 | dl_info.dataset - | ^^^^^^^ AIR302 + | ^^^^^^^ AIR301 52 | 53 | hlc = HookLineageCollector() | @@ -380,11 +380,11 @@ AIR302_class_attribute.py:51:9: AIR302 [*] `dataset` is removed in Airflow 3.0 53 53 | hlc = HookLineageCollector() 54 54 | hlc.create_dataset() -AIR302_class_attribute.py:54:5: AIR302 [*] `create_dataset` is removed in Airflow 3.0 +AIR301_class_attribute.py:54:5: AIR301 [*] `create_dataset` is removed in Airflow 3.0 | 53 | hlc = HookLineageCollector() 54 | hlc.create_dataset() - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 55 | hlc.add_input_dataset() 56 | hlc.add_output_dataset() | @@ -400,12 +400,12 @@ AIR302_class_attribute.py:54:5: AIR302 [*] `create_dataset` is removed in Airflo 56 56 | hlc.add_output_dataset() 57 57 | hlc.collected_datasets() -AIR302_class_attribute.py:55:5: AIR302 [*] `add_input_dataset` is removed in Airflow 3.0 +AIR301_class_attribute.py:55:5: AIR301 [*] `add_input_dataset` is removed in Airflow 3.0 | 53 | hlc = HookLineageCollector() 54 | hlc.create_dataset() 55 | hlc.add_input_dataset() - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 56 | hlc.add_output_dataset() 57 | hlc.collected_datasets() | @@ -421,12 +421,12 @@ AIR302_class_attribute.py:55:5: AIR302 [*] `add_input_dataset` is removed in Air 57 57 | hlc.collected_datasets() 58 58 | -AIR302_class_attribute.py:56:5: AIR302 [*] `add_output_dataset` is removed in Airflow 3.0 +AIR301_class_attribute.py:56:5: AIR301 [*] `add_output_dataset` is removed in Airflow 3.0 | 54 | hlc.create_dataset() 55 | hlc.add_input_dataset() 56 | hlc.add_output_dataset() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 57 | hlc.collected_datasets() | = help: Use `add_output_asset` instead @@ -441,12 +441,12 @@ AIR302_class_attribute.py:56:5: AIR302 [*] `add_output_dataset` is removed in Ai 58 58 | 59 59 | # airflow.providers.amazon.auth_manager.aws_auth_manager -AIR302_class_attribute.py:57:5: AIR302 [*] `collected_datasets` is removed in Airflow 3.0 +AIR301_class_attribute.py:57:5: AIR301 [*] `collected_datasets` is removed in Airflow 3.0 | 55 | hlc.add_input_dataset() 56 | hlc.add_output_dataset() 57 | hlc.collected_datasets() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 58 | 59 | # airflow.providers.amazon.auth_manager.aws_auth_manager | @@ -462,12 +462,12 @@ AIR302_class_attribute.py:57:5: AIR302 [*] `collected_datasets` is removed in Ai 59 59 | # airflow.providers.amazon.auth_manager.aws_auth_manager 60 60 | aam = AwsAuthManager() -AIR302_class_attribute.py:61:5: AIR302 [*] `is_authorized_dataset` is removed in Airflow 3.0 +AIR301_class_attribute.py:61:5: AIR301 [*] `is_authorized_dataset` is removed in Airflow 3.0 | 59 | # airflow.providers.amazon.auth_manager.aws_auth_manager 60 | aam = AwsAuthManager() 61 | aam.is_authorized_dataset() - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 62 | 63 | # airflow.providers.apache.beam.hooks | @@ -483,12 +483,12 @@ AIR302_class_attribute.py:61:5: AIR302 [*] `is_authorized_dataset` is removed in 63 63 | # airflow.providers.apache.beam.hooks 64 64 | # check get_conn_uri is caught if the class inherits from an airflow hook -AIR302_class_attribute.py:73:13: AIR302 [*] `get_conn_uri` is removed in Airflow 3.0 +AIR301_class_attribute.py:73:13: AIR301 [*] `get_conn_uri` is removed in Airflow 3.0 | 71 | # airflow.providers.google.cloud.secrets.secret_manager 72 | csm_backend = CloudSecretManagerBackend() 73 | csm_backend.get_conn_uri() - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 74 | csm_backend.get_connections() | = help: Use `get_conn_value` instead @@ -503,12 +503,12 @@ AIR302_class_attribute.py:73:13: AIR302 [*] `get_conn_uri` is removed in Airflow 75 75 | 76 76 | # airflow.providers.hashicorp.secrets.vault -AIR302_class_attribute.py:74:13: AIR302 [*] `get_connections` is removed in Airflow 3.0 +AIR301_class_attribute.py:74:13: AIR301 [*] `get_connections` is removed in Airflow 3.0 | 72 | csm_backend = CloudSecretManagerBackend() 73 | csm_backend.get_conn_uri() 74 | csm_backend.get_connections() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 75 | 76 | # airflow.providers.hashicorp.secrets.vault | @@ -524,12 +524,12 @@ AIR302_class_attribute.py:74:13: AIR302 [*] `get_connections` is removed in Airf 76 76 | # airflow.providers.hashicorp.secrets.vault 77 77 | vault_backend = VaultBackend() -AIR302_class_attribute.py:78:15: AIR302 [*] `get_conn_uri` is removed in Airflow 3.0 +AIR301_class_attribute.py:78:15: AIR301 [*] `get_conn_uri` is removed in Airflow 3.0 | 76 | # airflow.providers.hashicorp.secrets.vault 77 | vault_backend = VaultBackend() 78 | vault_backend.get_conn_uri() - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 79 | vault_backend.get_connections() | = help: Use `get_conn_value` instead @@ -544,12 +544,12 @@ AIR302_class_attribute.py:78:15: AIR302 [*] `get_conn_uri` is removed in Airflow 80 80 | 81 81 | not_an_error = NotAir302SecretError() -AIR302_class_attribute.py:79:15: AIR302 [*] `get_connections` is removed in Airflow 3.0 +AIR301_class_attribute.py:79:15: AIR301 [*] `get_connections` is removed in Airflow 3.0 | 77 | vault_backend = VaultBackend() 78 | vault_backend.get_conn_uri() 79 | vault_backend.get_connections() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 80 | 81 | not_an_error = NotAir302SecretError() | @@ -565,12 +565,12 @@ AIR302_class_attribute.py:79:15: AIR302 [*] `get_connections` is removed in Airf 81 81 | not_an_error = NotAir302SecretError() 82 82 | not_an_error.get_conn_uri() -AIR302_class_attribute.py:87:4: AIR302 [*] `dataset_factories` is removed in Airflow 3.0 +AIR301_class_attribute.py:87:4: AIR301 [*] `dataset_factories` is removed in Airflow 3.0 | 85 | pm = ProvidersManager() 86 | pm.initialize_providers_asset_uri_resources() 87 | pm.dataset_factories - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 88 | pm.dataset_factories 89 | pm.dataset_uri_handlers | @@ -586,12 +586,12 @@ AIR302_class_attribute.py:87:4: AIR302 [*] `dataset_factories` is removed in Air 89 89 | pm.dataset_uri_handlers 90 90 | pm.dataset_to_openlineage_converters -AIR302_class_attribute.py:88:4: AIR302 [*] `dataset_factories` is removed in Airflow 3.0 +AIR301_class_attribute.py:88:4: AIR301 [*] `dataset_factories` is removed in Airflow 3.0 | 86 | pm.initialize_providers_asset_uri_resources() 87 | pm.dataset_factories 88 | pm.dataset_factories - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 89 | pm.dataset_uri_handlers 90 | pm.dataset_to_openlineage_converters | @@ -607,12 +607,12 @@ AIR302_class_attribute.py:88:4: AIR302 [*] `dataset_factories` is removed in Air 90 90 | pm.dataset_to_openlineage_converters 91 91 | -AIR302_class_attribute.py:89:4: AIR302 [*] `dataset_uri_handlers` is removed in Airflow 3.0 +AIR301_class_attribute.py:89:4: AIR301 [*] `dataset_uri_handlers` is removed in Airflow 3.0 | 87 | pm.dataset_factories 88 | pm.dataset_factories 89 | pm.dataset_uri_handlers - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 90 | pm.dataset_to_openlineage_converters | = help: Use `asset_uri_handlers` instead @@ -627,12 +627,12 @@ AIR302_class_attribute.py:89:4: AIR302 [*] `dataset_uri_handlers` is removed in 91 91 | 92 92 | # airflow.secrets.base_secrets -AIR302_class_attribute.py:90:4: AIR302 [*] `dataset_to_openlineage_converters` is removed in Airflow 3.0 +AIR301_class_attribute.py:90:4: AIR301 [*] `dataset_to_openlineage_converters` is removed in Airflow 3.0 | 88 | pm.dataset_factories 89 | pm.dataset_uri_handlers 90 | pm.dataset_to_openlineage_converters - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 91 | 92 | # airflow.secrets.base_secrets | @@ -648,12 +648,12 @@ AIR302_class_attribute.py:90:4: AIR302 [*] `dataset_to_openlineage_converters` i 92 92 | # airflow.secrets.base_secrets 93 93 | base_secret_backend = BaseSecretsBackend() -AIR302_class_attribute.py:94:21: AIR302 [*] `get_conn_uri` is removed in Airflow 3.0 +AIR301_class_attribute.py:94:21: AIR301 [*] `get_conn_uri` is removed in Airflow 3.0 | 92 | # airflow.secrets.base_secrets 93 | base_secret_backend = BaseSecretsBackend() 94 | base_secret_backend.get_conn_uri() - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 95 | base_secret_backend.get_connections() | = help: Use `get_conn_value` instead @@ -668,12 +668,12 @@ AIR302_class_attribute.py:94:21: AIR302 [*] `get_conn_uri` is removed in Airflow 96 96 | 97 97 | # airflow.secrets.local_filesystem -AIR302_class_attribute.py:95:21: AIR302 [*] `get_connections` is removed in Airflow 3.0 +AIR301_class_attribute.py:95:21: AIR301 [*] `get_connections` is removed in Airflow 3.0 | 93 | base_secret_backend = BaseSecretsBackend() 94 | base_secret_backend.get_conn_uri() 95 | base_secret_backend.get_connections() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 96 | 97 | # airflow.secrets.local_filesystem | @@ -689,12 +689,12 @@ AIR302_class_attribute.py:95:21: AIR302 [*] `get_connections` is removed in Airf 97 97 | # airflow.secrets.local_filesystem 98 98 | lfb = LocalFilesystemBackend() -AIR302_class_attribute.py:99:5: AIR302 [*] `get_connections` is removed in Airflow 3.0 +AIR301_class_attribute.py:99:5: AIR301 [*] `get_connections` is removed in Airflow 3.0 | 97 | # airflow.secrets.local_filesystem 98 | lfb = LocalFilesystemBackend() 99 | lfb.get_connections() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 | = help: Use `get_connection` instead diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_context.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_context.py.snap similarity index 72% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_context.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_context.py.snap index 84332e02b0..2e6f189311 100644 --- a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_context.py.snap +++ b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_context.py.snap @@ -1,307 +1,306 @@ --- source: crates/ruff_linter/src/rules/airflow/mod.rs -snapshot_kind: text --- -AIR302_context.py:22:41: AIR302 `conf` is removed in Airflow 3.0 +AIR301_context.py:22:41: AIR301 `conf` is removed in Airflow 3.0 | 20 | @task 21 | def access_invalid_key_task_out_of_dag(**context): 22 | print("access invalid key", context["conf"]) - | ^^^^^^ AIR302 + | ^^^^^^ AIR301 23 | print("access invalid key", context.get("conf")) | -AIR302_context.py:23:45: AIR302 `conf` is removed in Airflow 3.0 +AIR301_context.py:23:45: AIR301 `conf` is removed in Airflow 3.0 | 21 | def access_invalid_key_task_out_of_dag(**context): 22 | print("access invalid key", context["conf"]) 23 | print("access invalid key", context.get("conf")) - | ^^^^^^ AIR302 + | ^^^^^^ AIR301 | -AIR302_context.py:28:5: AIR302 `execution_date` is removed in Airflow 3.0 +AIR301_context.py:28:5: AIR301 `execution_date` is removed in Airflow 3.0 | 26 | @task 27 | def access_invalid_argument_task_out_of_dag( 28 | execution_date, tomorrow_ds, logical_date, **context - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 29 | ): 30 | print("execution date", execution_date) | -AIR302_context.py:28:21: AIR302 `tomorrow_ds` is removed in Airflow 3.0 +AIR301_context.py:28:21: AIR301 `tomorrow_ds` is removed in Airflow 3.0 | 26 | @task 27 | def access_invalid_argument_task_out_of_dag( 28 | execution_date, tomorrow_ds, logical_date, **context - | ^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^ AIR301 29 | ): 30 | print("execution date", execution_date) | -AIR302_context.py:31:45: AIR302 `conf` is removed in Airflow 3.0 +AIR301_context.py:31:45: AIR301 `conf` is removed in Airflow 3.0 | 29 | ): 30 | print("execution date", execution_date) 31 | print("access invalid key", context.get("conf")) - | ^^^^^^ AIR302 + | ^^^^^^ AIR301 | -AIR302_context.py:40:30: AIR302 `execution_date` is removed in Airflow 3.0 +AIR301_context.py:40:30: AIR301 `execution_date` is removed in Airflow 3.0 | 39 | # Removed usage - should trigger violations 40 | execution_date = context["execution_date"] - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 41 | next_ds = context["next_ds"] 42 | next_ds_nodash = context["next_ds_nodash"] | -AIR302_context.py:41:23: AIR302 `next_ds` is removed in Airflow 3.0 +AIR301_context.py:41:23: AIR301 `next_ds` is removed in Airflow 3.0 | 39 | # Removed usage - should trigger violations 40 | execution_date = context["execution_date"] 41 | next_ds = context["next_ds"] - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 42 | next_ds_nodash = context["next_ds_nodash"] 43 | next_execution_date = context["next_execution_date"] | -AIR302_context.py:42:30: AIR302 `next_ds_nodash` is removed in Airflow 3.0 +AIR301_context.py:42:30: AIR301 `next_ds_nodash` is removed in Airflow 3.0 | 40 | execution_date = context["execution_date"] 41 | next_ds = context["next_ds"] 42 | next_ds_nodash = context["next_ds_nodash"] - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 43 | next_execution_date = context["next_execution_date"] 44 | prev_ds = context["prev_ds"] | -AIR302_context.py:43:35: AIR302 `next_execution_date` is removed in Airflow 3.0 +AIR301_context.py:43:35: AIR301 `next_execution_date` is removed in Airflow 3.0 | 41 | next_ds = context["next_ds"] 42 | next_ds_nodash = context["next_ds_nodash"] 43 | next_execution_date = context["next_execution_date"] - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 44 | prev_ds = context["prev_ds"] 45 | prev_ds_nodash = context["prev_ds_nodash"] | -AIR302_context.py:44:23: AIR302 `prev_ds` is removed in Airflow 3.0 +AIR301_context.py:44:23: AIR301 `prev_ds` is removed in Airflow 3.0 | 42 | next_ds_nodash = context["next_ds_nodash"] 43 | next_execution_date = context["next_execution_date"] 44 | prev_ds = context["prev_ds"] - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 45 | prev_ds_nodash = context["prev_ds_nodash"] 46 | prev_execution_date = context["prev_execution_date"] | -AIR302_context.py:45:30: AIR302 `prev_ds_nodash` is removed in Airflow 3.0 +AIR301_context.py:45:30: AIR301 `prev_ds_nodash` is removed in Airflow 3.0 | 43 | next_execution_date = context["next_execution_date"] 44 | prev_ds = context["prev_ds"] 45 | prev_ds_nodash = context["prev_ds_nodash"] - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 46 | prev_execution_date = context["prev_execution_date"] 47 | prev_execution_date_success = context["prev_execution_date_success"] | -AIR302_context.py:46:35: AIR302 `prev_execution_date` is removed in Airflow 3.0 +AIR301_context.py:46:35: AIR301 `prev_execution_date` is removed in Airflow 3.0 | 44 | prev_ds = context["prev_ds"] 45 | prev_ds_nodash = context["prev_ds_nodash"] 46 | prev_execution_date = context["prev_execution_date"] - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 47 | prev_execution_date_success = context["prev_execution_date_success"] 48 | tomorrow_ds = context["tomorrow_ds"] | -AIR302_context.py:47:43: AIR302 `prev_execution_date_success` is removed in Airflow 3.0 +AIR301_context.py:47:43: AIR301 `prev_execution_date_success` is removed in Airflow 3.0 | 45 | prev_ds_nodash = context["prev_ds_nodash"] 46 | prev_execution_date = context["prev_execution_date"] 47 | prev_execution_date_success = context["prev_execution_date_success"] - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 48 | tomorrow_ds = context["tomorrow_ds"] 49 | yesterday_ds = context["yesterday_ds"] | -AIR302_context.py:48:27: AIR302 `tomorrow_ds` is removed in Airflow 3.0 +AIR301_context.py:48:27: AIR301 `tomorrow_ds` is removed in Airflow 3.0 | 46 | prev_execution_date = context["prev_execution_date"] 47 | prev_execution_date_success = context["prev_execution_date_success"] 48 | tomorrow_ds = context["tomorrow_ds"] - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 49 | yesterday_ds = context["yesterday_ds"] 50 | yesterday_ds_nodash = context["yesterday_ds_nodash"] | -AIR302_context.py:49:28: AIR302 `yesterday_ds` is removed in Airflow 3.0 +AIR301_context.py:49:28: AIR301 `yesterday_ds` is removed in Airflow 3.0 | 47 | prev_execution_date_success = context["prev_execution_date_success"] 48 | tomorrow_ds = context["tomorrow_ds"] 49 | yesterday_ds = context["yesterday_ds"] - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 50 | yesterday_ds_nodash = context["yesterday_ds_nodash"] | -AIR302_context.py:50:35: AIR302 `yesterday_ds_nodash` is removed in Airflow 3.0 +AIR301_context.py:50:35: AIR301 `yesterday_ds_nodash` is removed in Airflow 3.0 | 48 | tomorrow_ds = context["tomorrow_ds"] 49 | yesterday_ds = context["yesterday_ds"] 50 | yesterday_ds_nodash = context["yesterday_ds_nodash"] - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 | -AIR302_context.py:56:30: AIR302 `execution_date` is removed in Airflow 3.0 +AIR301_context.py:56:30: AIR301 `execution_date` is removed in Airflow 3.0 | 54 | def print_config_with_get_current_context(): 55 | context = get_current_context() 56 | execution_date = context["execution_date"] - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 57 | next_ds = context["next_ds"] 58 | next_ds_nodash = context["next_ds_nodash"] | -AIR302_context.py:57:23: AIR302 `next_ds` is removed in Airflow 3.0 +AIR301_context.py:57:23: AIR301 `next_ds` is removed in Airflow 3.0 | 55 | context = get_current_context() 56 | execution_date = context["execution_date"] 57 | next_ds = context["next_ds"] - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 58 | next_ds_nodash = context["next_ds_nodash"] 59 | next_execution_date = context["next_execution_date"] | -AIR302_context.py:58:30: AIR302 `next_ds_nodash` is removed in Airflow 3.0 +AIR301_context.py:58:30: AIR301 `next_ds_nodash` is removed in Airflow 3.0 | 56 | execution_date = context["execution_date"] 57 | next_ds = context["next_ds"] 58 | next_ds_nodash = context["next_ds_nodash"] - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 59 | next_execution_date = context["next_execution_date"] 60 | prev_ds = context["prev_ds"] | -AIR302_context.py:59:35: AIR302 `next_execution_date` is removed in Airflow 3.0 +AIR301_context.py:59:35: AIR301 `next_execution_date` is removed in Airflow 3.0 | 57 | next_ds = context["next_ds"] 58 | next_ds_nodash = context["next_ds_nodash"] 59 | next_execution_date = context["next_execution_date"] - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 60 | prev_ds = context["prev_ds"] 61 | prev_ds_nodash = context["prev_ds_nodash"] | -AIR302_context.py:60:23: AIR302 `prev_ds` is removed in Airflow 3.0 +AIR301_context.py:60:23: AIR301 `prev_ds` is removed in Airflow 3.0 | 58 | next_ds_nodash = context["next_ds_nodash"] 59 | next_execution_date = context["next_execution_date"] 60 | prev_ds = context["prev_ds"] - | ^^^^^^^^^ AIR302 + | ^^^^^^^^^ AIR301 61 | prev_ds_nodash = context["prev_ds_nodash"] 62 | prev_execution_date = context["prev_execution_date"] | -AIR302_context.py:61:30: AIR302 `prev_ds_nodash` is removed in Airflow 3.0 +AIR301_context.py:61:30: AIR301 `prev_ds_nodash` is removed in Airflow 3.0 | 59 | next_execution_date = context["next_execution_date"] 60 | prev_ds = context["prev_ds"] 61 | prev_ds_nodash = context["prev_ds_nodash"] - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 62 | prev_execution_date = context["prev_execution_date"] 63 | prev_execution_date_success = context["prev_execution_date_success"] | -AIR302_context.py:62:35: AIR302 `prev_execution_date` is removed in Airflow 3.0 +AIR301_context.py:62:35: AIR301 `prev_execution_date` is removed in Airflow 3.0 | 60 | prev_ds = context["prev_ds"] 61 | prev_ds_nodash = context["prev_ds_nodash"] 62 | prev_execution_date = context["prev_execution_date"] - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 63 | prev_execution_date_success = context["prev_execution_date_success"] 64 | tomorrow_ds = context["tomorrow_ds"] | -AIR302_context.py:63:43: AIR302 `prev_execution_date_success` is removed in Airflow 3.0 +AIR301_context.py:63:43: AIR301 `prev_execution_date_success` is removed in Airflow 3.0 | 61 | prev_ds_nodash = context["prev_ds_nodash"] 62 | prev_execution_date = context["prev_execution_date"] 63 | prev_execution_date_success = context["prev_execution_date_success"] - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 64 | tomorrow_ds = context["tomorrow_ds"] 65 | yesterday_ds = context["yesterday_ds"] | -AIR302_context.py:64:27: AIR302 `tomorrow_ds` is removed in Airflow 3.0 +AIR301_context.py:64:27: AIR301 `tomorrow_ds` is removed in Airflow 3.0 | 62 | prev_execution_date = context["prev_execution_date"] 63 | prev_execution_date_success = context["prev_execution_date_success"] 64 | tomorrow_ds = context["tomorrow_ds"] - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 65 | yesterday_ds = context["yesterday_ds"] 66 | yesterday_ds_nodash = context["yesterday_ds_nodash"] | -AIR302_context.py:65:28: AIR302 `yesterday_ds` is removed in Airflow 3.0 +AIR301_context.py:65:28: AIR301 `yesterday_ds` is removed in Airflow 3.0 | 63 | prev_execution_date_success = context["prev_execution_date_success"] 64 | tomorrow_ds = context["tomorrow_ds"] 65 | yesterday_ds = context["yesterday_ds"] - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 66 | yesterday_ds_nodash = context["yesterday_ds_nodash"] | -AIR302_context.py:66:35: AIR302 `yesterday_ds_nodash` is removed in Airflow 3.0 +AIR301_context.py:66:35: AIR301 `yesterday_ds_nodash` is removed in Airflow 3.0 | 64 | tomorrow_ds = context["tomorrow_ds"] 65 | yesterday_ds = context["yesterday_ds"] 66 | yesterday_ds_nodash = context["yesterday_ds_nodash"] - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 | -AIR302_context.py:73:22: AIR302 `tomorrow_ds` is removed in Airflow 3.0 +AIR301_context.py:73:22: AIR301 `tomorrow_ds` is removed in Airflow 3.0 | 71 | """Print the Airflow context and ds variable from the context.""" 72 | print(ds) 73 | print(kwargs.get("tomorrow_ds")) - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 74 | c = get_current_context() 75 | c.get("execution_date") | -AIR302_context.py:75:11: AIR302 `execution_date` is removed in Airflow 3.0 +AIR301_context.py:75:11: AIR301 `execution_date` is removed in Airflow 3.0 | 73 | print(kwargs.get("tomorrow_ds")) 74 | c = get_current_context() 75 | c.get("execution_date") - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 | -AIR302_context.py:87:49: AIR302 `conf` is removed in Airflow 3.0 +AIR301_context.py:87:49: AIR301 `conf` is removed in Airflow 3.0 | 85 | @task() 86 | def access_invalid_key_task(**context): 87 | print("access invalid key", context.get("conf")) - | ^^^^^^ AIR302 + | ^^^^^^ AIR301 88 | 89 | @task() | -AIR302_context.py:90:42: AIR302 `execution_date` is removed in Airflow 3.0 +AIR301_context.py:90:42: AIR301 `execution_date` is removed in Airflow 3.0 | 89 | @task() 90 | def access_invalid_key_explicit_task(execution_date): - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 91 | print(execution_date) | -AIR302_context.py:111:5: AIR302 [*] `schedule_interval` is removed in Airflow 3.0 +AIR301_context.py:111:5: AIR301 [*] `schedule_interval` is removed in Airflow 3.0 | 109 | with DAG( 110 | dag_id="example_dag", 111 | schedule_interval="@daily", - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 112 | start_date=datetime(2023, 1, 1), 113 | template_searchpath=["/templates"], | @@ -317,22 +316,22 @@ AIR302_context.py:111:5: AIR302 [*] `schedule_interval` is removed in Airflow 3. 113 113 | template_searchpath=["/templates"], 114 114 | ) as dag: -AIR302_context.py:115:13: AIR302 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0 +AIR301_context.py:115:13: AIR301 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0 | 113 | template_searchpath=["/templates"], 114 | ) as dag: 115 | task1 = DummyOperator( - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 116 | task_id="task1", 117 | params={ | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_context.py:135:23: AIR302 `next_ds` is removed in Airflow 3.0 +AIR301_context.py:135:23: AIR301 `next_ds` is removed in Airflow 3.0 | 134 | class CustomOperator(BaseOperator): 135 | def execute(self, next_ds, context): - | ^^^^^^^ AIR302 + | ^^^^^^^ AIR301 136 | execution_date = context["execution_date"] 137 | next_ds = context["next_ds"] | diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_names.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names.py.snap similarity index 71% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_names.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names.py.snap index 9199ee09b0..5c5e4c3f6e 100644 --- a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_names.py.snap +++ b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names.py.snap @@ -1,75 +1,75 @@ --- source: crates/ruff_linter/src/rules/airflow/mod.rs --- -AIR302_names.py:121:1: AIR302 `airflow.PY36` is removed in Airflow 3.0 +AIR301_names.py:121:1: AIR301 `airflow.PY36` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 - | ^^^^ AIR302 + | ^^^^ AIR301 122 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:121:7: AIR302 `airflow.PY37` is removed in Airflow 3.0 +AIR301_names.py:121:7: AIR301 `airflow.PY37` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 - | ^^^^ AIR302 + | ^^^^ AIR301 122 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:121:13: AIR302 `airflow.PY38` is removed in Airflow 3.0 +AIR301_names.py:121:13: AIR301 `airflow.PY38` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 - | ^^^^ AIR302 + | ^^^^ AIR301 122 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:121:19: AIR302 `airflow.PY39` is removed in Airflow 3.0 +AIR301_names.py:121:19: AIR301 `airflow.PY39` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 - | ^^^^ AIR302 + | ^^^^ AIR301 122 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:121:25: AIR302 `airflow.PY310` is removed in Airflow 3.0 +AIR301_names.py:121:25: AIR301 `airflow.PY310` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 - | ^^^^^ AIR302 + | ^^^^^ AIR301 122 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:121:32: AIR302 `airflow.PY311` is removed in Airflow 3.0 +AIR301_names.py:121:32: AIR301 `airflow.PY311` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 - | ^^^^^ AIR302 + | ^^^^^ AIR301 122 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:121:39: AIR302 `airflow.PY312` is removed in Airflow 3.0 +AIR301_names.py:121:39: AIR301 `airflow.PY312` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 - | ^^^^^ AIR302 + | ^^^^^ AIR301 122 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:122:1: AIR302 [*] `airflow.Dataset` is removed in Airflow 3.0 +AIR301_names.py:122:1: AIR301 [*] `airflow.Dataset` is removed in Airflow 3.0 | 120 | # airflow root 121 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 122 | DatasetFromRoot() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 123 | 124 | # airflow.api_connexion.security | @@ -89,21 +89,21 @@ AIR302_names.py:122:1: AIR302 [*] `airflow.Dataset` is removed in Airflow 3.0 124 125 | # airflow.api_connexion.security 125 126 | requires_access, requires_access_dataset -AIR302_names.py:125:1: AIR302 `airflow.api_connexion.security.requires_access` is removed in Airflow 3.0 +AIR301_names.py:125:1: AIR301 `airflow.api_connexion.security.requires_access` is removed in Airflow 3.0 | 124 | # airflow.api_connexion.security 125 | requires_access, requires_access_dataset - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 126 | 127 | # airflow.auth.managers | = help: Use `airflow.api_connexion.security.requires_access_*` instead -AIR302_names.py:125:18: AIR302 [*] `airflow.api_connexion.security.requires_access_dataset` is removed in Airflow 3.0 +AIR301_names.py:125:18: AIR301 [*] `airflow.api_connexion.security.requires_access_dataset` is removed in Airflow 3.0 | 124 | # airflow.api_connexion.security 125 | requires_access, requires_access_dataset - | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^ AIR301 126 | 127 | # airflow.auth.managers | @@ -128,104 +128,104 @@ AIR302_names.py:125:18: AIR302 [*] `airflow.api_connexion.security.requires_acce 127 127 | # airflow.auth.managers 128 128 | is_authorized_dataset -AIR302_names.py:128:1: AIR302 `airflow.auth.managers.base_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 +AIR301_names.py:128:1: AIR301 `airflow.auth.managers.base_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 | 127 | # airflow.auth.managers 128 | is_authorized_dataset - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 129 | DatasetDetails() | = help: Use `airflow.api_fastapi.auth.managers.base_auth_manager.is_authorized_asset` instead -AIR302_names.py:129:1: AIR302 `airflow.auth.managers.models.resource_details.DatasetDetails` is removed in Airflow 3.0 +AIR301_names.py:129:1: AIR301 `airflow.auth.managers.models.resource_details.DatasetDetails` is removed in Airflow 3.0 | 127 | # airflow.auth.managers 128 | is_authorized_dataset 129 | DatasetDetails() - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 130 | 131 | # airflow.configuration | = help: Use `airflow.api_fastapi.auth.managers.models.resource_details.AssetDetails` instead -AIR302_names.py:132:1: AIR302 `airflow.configuration.get` is removed in Airflow 3.0 +AIR301_names.py:132:1: AIR301 `airflow.configuration.get` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^ AIR302 + | ^^^ AIR301 | = help: Use `airflow.configuration.conf.get` instead -AIR302_names.py:132:6: AIR302 `airflow.configuration.getboolean` is removed in Airflow 3.0 +AIR301_names.py:132:6: AIR301 `airflow.configuration.getboolean` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 | = help: Use `airflow.configuration.conf.getboolean` instead -AIR302_names.py:132:18: AIR302 `airflow.configuration.getfloat` is removed in Airflow 3.0 +AIR301_names.py:132:18: AIR301 `airflow.configuration.getfloat` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^^^^^^ AIR302 + | ^^^^^^^^ AIR301 | = help: Use `airflow.configuration.conf.getfloat` instead -AIR302_names.py:132:28: AIR302 `airflow.configuration.getint` is removed in Airflow 3.0 +AIR301_names.py:132:28: AIR301 `airflow.configuration.getint` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^^^^ AIR302 + | ^^^^^^ AIR301 | = help: Use `airflow.configuration.conf.getint` instead -AIR302_names.py:132:36: AIR302 `airflow.configuration.has_option` is removed in Airflow 3.0 +AIR301_names.py:132:36: AIR301 `airflow.configuration.has_option` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 | = help: Use `airflow.configuration.conf.has_option` instead -AIR302_names.py:132:48: AIR302 `airflow.configuration.remove_option` is removed in Airflow 3.0 +AIR301_names.py:132:48: AIR301 `airflow.configuration.remove_option` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 | = help: Use `airflow.configuration.conf.remove_option` instead -AIR302_names.py:132:63: AIR302 `airflow.configuration.as_dict` is removed in Airflow 3.0 +AIR301_names.py:132:63: AIR301 `airflow.configuration.as_dict` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^^^^^ AIR302 + | ^^^^^^^ AIR301 | = help: Use `airflow.configuration.conf.as_dict` instead -AIR302_names.py:132:72: AIR302 `airflow.configuration.set` is removed in Airflow 3.0 +AIR301_names.py:132:72: AIR301 `airflow.configuration.set` is removed in Airflow 3.0 | 131 | # airflow.configuration 132 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set - | ^^^ AIR302 + | ^^^ AIR301 | = help: Use `airflow.configuration.conf.set` instead -AIR302_names.py:136:1: AIR302 `airflow.contrib.aws_athena_hook.AWSAthenaHook` is removed in Airflow 3.0; The whole `airflow.contrib` module has been removed. +AIR301_names.py:136:1: AIR301 `airflow.contrib.aws_athena_hook.AWSAthenaHook` is removed in Airflow 3.0; The whole `airflow.contrib` module has been removed. | 135 | # airflow.contrib.* 136 | AWSAthenaHook() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 137 | 138 | # airflow.datasets | -AIR302_names.py:139:1: AIR302 [*] `airflow.datasets.Dataset` is removed in Airflow 3.0 +AIR301_names.py:139:1: AIR301 [*] `airflow.datasets.Dataset` is removed in Airflow 3.0 | 138 | # airflow.datasets 139 | Dataset() - | ^^^^^^^ AIR302 + | ^^^^^^^ AIR301 140 | DatasetAlias() 141 | DatasetAliasEvent() | @@ -249,891 +249,891 @@ AIR302_names.py:139:1: AIR302 [*] `airflow.datasets.Dataset` is removed in Airfl 141 142 | DatasetAliasEvent() 142 143 | DatasetAll() -AIR302_names.py:140:1: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 +AIR301_names.py:140:1: AIR301 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 | 138 | # airflow.datasets 139 | Dataset() 140 | DatasetAlias() - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 141 | DatasetAliasEvent() 142 | DatasetAll() | = help: Use `airflow.sdk.AssetAlias` instead -AIR302_names.py:141:1: AIR302 `airflow.datasets.DatasetAliasEvent` is removed in Airflow 3.0 +AIR301_names.py:141:1: AIR301 `airflow.datasets.DatasetAliasEvent` is removed in Airflow 3.0 | 139 | Dataset() 140 | DatasetAlias() 141 | DatasetAliasEvent() - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 142 | DatasetAll() 143 | DatasetAny() | -AIR302_names.py:142:1: AIR302 `airflow.datasets.DatasetAll` is removed in Airflow 3.0 +AIR301_names.py:142:1: AIR301 `airflow.datasets.DatasetAll` is removed in Airflow 3.0 | 140 | DatasetAlias() 141 | DatasetAliasEvent() 142 | DatasetAll() - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 143 | DatasetAny() 144 | Metadata() | = help: Use `airflow.sdk.AssetAll` instead -AIR302_names.py:143:1: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 +AIR301_names.py:143:1: AIR301 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 | 141 | DatasetAliasEvent() 142 | DatasetAll() 143 | DatasetAny() - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 144 | Metadata() 145 | expand_alias_to_datasets | = help: Use `airflow.sdk.AssetAny` instead -AIR302_names.py:144:1: AIR302 `airflow.datasets.metadata.Metadata` is removed in Airflow 3.0 +AIR301_names.py:144:1: AIR301 `airflow.datasets.metadata.Metadata` is removed in Airflow 3.0 | 142 | DatasetAll() 143 | DatasetAny() 144 | Metadata() - | ^^^^^^^^ AIR302 + | ^^^^^^^^ AIR301 145 | expand_alias_to_datasets | = help: Use `airflow.sdk.Metadata` instead -AIR302_names.py:145:1: AIR302 `airflow.datasets.expand_alias_to_datasets` is removed in Airflow 3.0 +AIR301_names.py:145:1: AIR301 `airflow.datasets.expand_alias_to_datasets` is removed in Airflow 3.0 | 143 | DatasetAny() 144 | Metadata() 145 | expand_alias_to_datasets - | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 146 | 147 | # airflow.datasets.manager | = help: Use `airflow.sdk.expand_alias_to_assets` instead -AIR302_names.py:148:1: AIR302 `airflow.datasets.manager.DatasetManager` is removed in Airflow 3.0 +AIR301_names.py:148:1: AIR301 `airflow.datasets.manager.DatasetManager` is removed in Airflow 3.0 | 147 | # airflow.datasets.manager 148 | DatasetManager() - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 149 | dataset_manager 150 | resolve_dataset_manager | = help: Use `airflow.assets.AssetManager` instead -AIR302_names.py:149:1: AIR302 `airflow.datasets.manager.dataset_manager` is removed in Airflow 3.0 +AIR301_names.py:149:1: AIR301 `airflow.datasets.manager.dataset_manager` is removed in Airflow 3.0 | 147 | # airflow.datasets.manager 148 | DatasetManager() 149 | dataset_manager - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 150 | resolve_dataset_manager | = help: Use `airflow.assets.manager.asset_manager` instead -AIR302_names.py:150:1: AIR302 `airflow.datasets.manager.resolve_dataset_manager` is removed in Airflow 3.0 +AIR301_names.py:150:1: AIR301 `airflow.datasets.manager.resolve_dataset_manager` is removed in Airflow 3.0 | 148 | DatasetManager() 149 | dataset_manager 150 | resolve_dataset_manager - | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^ AIR301 151 | 152 | # airflow.hooks | = help: Use `airflow.assets.resolve_asset_manager` instead -AIR302_names.py:153:1: AIR302 `airflow.hooks.base_hook.BaseHook` is removed in Airflow 3.0 +AIR301_names.py:153:1: AIR301 `airflow.hooks.base_hook.BaseHook` is removed in Airflow 3.0 | 152 | # airflow.hooks 153 | BaseHook() - | ^^^^^^^^ AIR302 + | ^^^^^^^^ AIR301 154 | 155 | # airflow.lineage.hook | = help: Use `airflow.hooks.base.BaseHook` instead -AIR302_names.py:156:1: AIR302 `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0 +AIR301_names.py:156:1: AIR301 `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0 | 155 | # airflow.lineage.hook 156 | DatasetLineageInfo() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 157 | 158 | # airflow.listeners.spec.dataset | = help: Use `airflow.lineage.hook.AssetLineageInfo` instead -AIR302_names.py:159:1: AIR302 `airflow.listeners.spec.dataset.on_dataset_changed` is removed in Airflow 3.0 +AIR301_names.py:159:1: AIR301 `airflow.listeners.spec.dataset.on_dataset_changed` is removed in Airflow 3.0 | 158 | # airflow.listeners.spec.dataset 159 | on_dataset_changed - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 160 | on_dataset_created | = help: Use `airflow.listeners.spec.asset.on_asset_changed` instead -AIR302_names.py:160:1: AIR302 `airflow.listeners.spec.dataset.on_dataset_created` is removed in Airflow 3.0 +AIR301_names.py:160:1: AIR301 `airflow.listeners.spec.dataset.on_dataset_created` is removed in Airflow 3.0 | 158 | # airflow.listeners.spec.dataset 159 | on_dataset_changed 160 | on_dataset_created - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 161 | 162 | # airflow.metrics.validators | = help: Use `airflow.listeners.spec.asset.on_asset_created` instead -AIR302_names.py:163:1: AIR302 `airflow.metrics.validators.AllowListValidator` is removed in Airflow 3.0 +AIR301_names.py:163:1: AIR301 `airflow.metrics.validators.AllowListValidator` is removed in Airflow 3.0 | 162 | # airflow.metrics.validators 163 | AllowListValidator() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 164 | BlockListValidator() | = help: Use `airflow.metrics.validators.PatternAllowListValidator` instead -AIR302_names.py:164:1: AIR302 `airflow.metrics.validators.BlockListValidator` is removed in Airflow 3.0 +AIR301_names.py:164:1: AIR301 `airflow.metrics.validators.BlockListValidator` is removed in Airflow 3.0 | 162 | # airflow.metrics.validators 163 | AllowListValidator() 164 | BlockListValidator() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 | = help: Use `airflow.metrics.validators.PatternBlockListValidator` instead -AIR302_names.py:168:1: AIR302 `airflow.models.baseoperator.chain` is removed in Airflow 3.0 +AIR301_names.py:168:1: AIR301 `airflow.models.baseoperator.chain` is removed in Airflow 3.0 | 167 | # airflow.models.baseoperator 168 | chain, chain_linear, cross_downstream - | ^^^^^ AIR302 + | ^^^^^ AIR301 169 | 170 | # airflow.models.baseoperatorlink | = help: Use `airflow.sdk.chain` instead -AIR302_names.py:168:8: AIR302 `airflow.models.baseoperator.chain_linear` is removed in Airflow 3.0 +AIR301_names.py:168:8: AIR301 `airflow.models.baseoperator.chain_linear` is removed in Airflow 3.0 | 167 | # airflow.models.baseoperator 168 | chain, chain_linear, cross_downstream - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 169 | 170 | # airflow.models.baseoperatorlink | = help: Use `airflow.sdk.chain_linear` instead -AIR302_names.py:168:22: AIR302 `airflow.models.baseoperator.cross_downstream` is removed in Airflow 3.0 +AIR301_names.py:168:22: AIR301 `airflow.models.baseoperator.cross_downstream` is removed in Airflow 3.0 | 167 | # airflow.models.baseoperator 168 | chain, chain_linear, cross_downstream - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 169 | 170 | # airflow.models.baseoperatorlink | = help: Use `airflow.sdk.cross_downstream` instead -AIR302_names.py:171:1: AIR302 `airflow.models.baseoperatorlink.BaseOperatorLink` is removed in Airflow 3.0 +AIR301_names.py:171:1: AIR301 `airflow.models.baseoperatorlink.BaseOperatorLink` is removed in Airflow 3.0 | 170 | # airflow.models.baseoperatorlink 171 | BaseOperatorLink() - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 172 | 173 | # ariflow.notifications.basenotifier | = help: Use `airflow.sdk.definitions.baseoperatorlink.BaseOperatorLink` instead -AIR302_names.py:174:1: AIR302 `airflow.notifications.basenotifier.BaseNotifier` is removed in Airflow 3.0 +AIR301_names.py:174:1: AIR301 `airflow.notifications.basenotifier.BaseNotifier` is removed in Airflow 3.0 | 173 | # ariflow.notifications.basenotifier 174 | BaseNotifier() - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 175 | 176 | # airflow.operators.dummy | = help: Use `airflow.sdk.BaseNotifier` instead -AIR302_names.py:177:1: AIR302 `airflow.operators.dummy.EmptyOperator` is removed in Airflow 3.0 +AIR301_names.py:177:1: AIR301 `airflow.operators.dummy.EmptyOperator` is removed in Airflow 3.0 | 176 | # airflow.operators.dummy 177 | EmptyOperator() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 178 | DummyOperator() | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_names.py:178:1: AIR302 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0 +AIR301_names.py:178:1: AIR301 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0 | 176 | # airflow.operators.dummy 177 | EmptyOperator() 178 | DummyOperator() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 179 | 180 | # airflow.operators.dummy_operator | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_names.py:181:16: AIR302 `airflow.operators.dummy_operator.EmptyOperator` is removed in Airflow 3.0 +AIR301_names.py:181:16: AIR301 `airflow.operators.dummy_operator.EmptyOperator` is removed in Airflow 3.0 | 180 | # airflow.operators.dummy_operator 181 | dummy_operator.EmptyOperator() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 182 | dummy_operator.DummyOperator() | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_names.py:182:16: AIR302 `airflow.operators.dummy_operator.DummyOperator` is removed in Airflow 3.0 +AIR301_names.py:182:16: AIR301 `airflow.operators.dummy_operator.DummyOperator` is removed in Airflow 3.0 | 180 | # airflow.operators.dummy_operator 181 | dummy_operator.EmptyOperator() 182 | dummy_operator.DummyOperator() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 183 | 184 | # airflow.operators.branch_operator | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_names.py:185:1: AIR302 `airflow.operators.branch_operator.BaseBranchOperator` is removed in Airflow 3.0 +AIR301_names.py:185:1: AIR301 `airflow.operators.branch_operator.BaseBranchOperator` is removed in Airflow 3.0 | 184 | # airflow.operators.branch_operator 185 | BaseBranchOperator() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 186 | 187 | # airflow.operators.dagrun_operator | = help: Use `airflow.operators.branch.BaseBranchOperator` instead -AIR302_names.py:188:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunLink` is removed in Airflow 3.0 +AIR301_names.py:188:1: AIR301 `airflow.operators.dagrun_operator.TriggerDagRunLink` is removed in Airflow 3.0 | 187 | # airflow.operators.dagrun_operator 188 | TriggerDagRunLink() - | ^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^ AIR301 189 | TriggerDagRunOperator() | = help: Use `airflow.operators.trigger_dagrun.TriggerDagRunLink` instead -AIR302_names.py:189:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunOperator` is removed in Airflow 3.0 +AIR301_names.py:189:1: AIR301 `airflow.operators.dagrun_operator.TriggerDagRunOperator` is removed in Airflow 3.0 | 187 | # airflow.operators.dagrun_operator 188 | TriggerDagRunLink() 189 | TriggerDagRunOperator() - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 190 | 191 | # airflow.operators.email_operator | = help: Use `airflow.operators.trigger_dagrun.TriggerDagRunOperator` instead -AIR302_names.py:192:1: AIR302 `airflow.operators.email_operator.EmailOperator` is removed in Airflow 3.0 +AIR301_names.py:192:1: AIR301 `airflow.operators.email_operator.EmailOperator` is removed in Airflow 3.0 | 191 | # airflow.operators.email_operator 192 | EmailOperator() - | ^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^ AIR301 193 | 194 | # airflow.operators.latest_only_operator | = help: Use `airflow.operators.email.EmailOperator` instead -AIR302_names.py:195:1: AIR302 `airflow.operators.latest_only_operator.LatestOnlyOperator` is removed in Airflow 3.0 +AIR301_names.py:195:1: AIR301 `airflow.operators.latest_only_operator.LatestOnlyOperator` is removed in Airflow 3.0 | 194 | # airflow.operators.latest_only_operator 195 | LatestOnlyOperator() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 196 | 197 | # airflow.operators.python_operator | = help: Use `airflow.operators.latest_only.LatestOnlyOperator` instead -AIR302_names.py:198:1: AIR302 `airflow.operators.python_operator.BranchPythonOperator` is removed in Airflow 3.0 +AIR301_names.py:198:1: AIR301 `airflow.operators.python_operator.BranchPythonOperator` is removed in Airflow 3.0 | 197 | # airflow.operators.python_operator 198 | BranchPythonOperator() - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 199 | PythonOperator() 200 | PythonVirtualenvOperator() | = help: Use `airflow.operators.python.BranchPythonOperator` instead -AIR302_names.py:199:1: AIR302 `airflow.operators.python_operator.PythonOperator` is removed in Airflow 3.0 +AIR301_names.py:199:1: AIR301 `airflow.operators.python_operator.PythonOperator` is removed in Airflow 3.0 | 197 | # airflow.operators.python_operator 198 | BranchPythonOperator() 199 | PythonOperator() - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 200 | PythonVirtualenvOperator() 201 | ShortCircuitOperator() | = help: Use `airflow.operators.python.PythonOperator` instead -AIR302_names.py:200:1: AIR302 `airflow.operators.python_operator.PythonVirtualenvOperator` is removed in Airflow 3.0 +AIR301_names.py:200:1: AIR301 `airflow.operators.python_operator.PythonVirtualenvOperator` is removed in Airflow 3.0 | 198 | BranchPythonOperator() 199 | PythonOperator() 200 | PythonVirtualenvOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 201 | ShortCircuitOperator() | = help: Use `airflow.operators.python.PythonVirtualenvOperator` instead -AIR302_names.py:201:1: AIR302 `airflow.operators.python_operator.ShortCircuitOperator` is removed in Airflow 3.0 +AIR301_names.py:201:1: AIR301 `airflow.operators.python_operator.ShortCircuitOperator` is removed in Airflow 3.0 | 199 | PythonOperator() 200 | PythonVirtualenvOperator() 201 | ShortCircuitOperator() - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 202 | 203 | # airflow.operators.subdag.* | = help: Use `airflow.operators.python.ShortCircuitOperator` instead -AIR302_names.py:204:1: AIR302 `airflow.operators.subdag.SubDagOperator` is removed in Airflow 3.0; The whole `airflow.subdag` module has been removed. +AIR301_names.py:204:1: AIR301 `airflow.operators.subdag.SubDagOperator` is removed in Airflow 3.0; The whole `airflow.subdag` module has been removed. | 203 | # airflow.operators.subdag.* 204 | SubDagOperator() - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 205 | 206 | # airflow.providers.amazon | -AIR302_names.py:207:13: AIR302 `airflow.providers.amazon.aws.auth_manager.avp.entities.AvpEntities.DATASET` is removed in Airflow 3.0 +AIR301_names.py:207:13: AIR301 `airflow.providers.amazon.aws.auth_manager.avp.entities.AvpEntities.DATASET` is removed in Airflow 3.0 | 206 | # airflow.providers.amazon 207 | AvpEntities.DATASET - | ^^^^^^^ AIR302 + | ^^^^^^^ AIR301 208 | s3.create_dataset 209 | s3.convert_dataset_to_openlineage | = help: Use `airflow.providers.amazon.aws.auth_manager.avp.entities.AvpEntities.ASSET` instead -AIR302_names.py:208:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.create_dataset` is removed in Airflow 3.0 +AIR301_names.py:208:4: AIR301 `airflow.providers.amazon.aws.datasets.s3.create_dataset` is removed in Airflow 3.0 | 206 | # airflow.providers.amazon 207 | AvpEntities.DATASET 208 | s3.create_dataset - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 209 | s3.convert_dataset_to_openlineage 210 | s3.sanitize_uri | = help: Use `airflow.providers.amazon.aws.assets.s3.create_asset` instead -AIR302_names.py:209:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage` is removed in Airflow 3.0 +AIR301_names.py:209:4: AIR301 `airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage` is removed in Airflow 3.0 | 207 | AvpEntities.DATASET 208 | s3.create_dataset 209 | s3.convert_dataset_to_openlineage - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 210 | s3.sanitize_uri | = help: Use `airflow.providers.amazon.aws.assets.s3.convert_asset_to_openlineage` instead -AIR302_names.py:210:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.sanitize_uri` is removed in Airflow 3.0 +AIR301_names.py:210:4: AIR301 `airflow.providers.amazon.aws.datasets.s3.sanitize_uri` is removed in Airflow 3.0 | 208 | s3.create_dataset 209 | s3.convert_dataset_to_openlineage 210 | s3.sanitize_uri - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 211 | 212 | # airflow.providers.common.io | = help: Use `airflow.providers.amazon.aws.assets.s3.sanitize_uri` instead -AIR302_names.py:213:16: AIR302 `airflow.providers.common.io.datasets.file.convert_dataset_to_openlineage` is removed in Airflow 3.0 +AIR301_names.py:213:16: AIR301 `airflow.providers.common.io.datasets.file.convert_dataset_to_openlineage` is removed in Airflow 3.0 | 212 | # airflow.providers.common.io 213 | common_io_file.convert_dataset_to_openlineage - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 214 | common_io_file.create_dataset 215 | common_io_file.sanitize_uri | = help: Use `airflow.providers.common.io.assets.file.convert_asset_to_openlineage` instead -AIR302_names.py:214:16: AIR302 `airflow.providers.common.io.datasets.file.create_dataset` is removed in Airflow 3.0 +AIR301_names.py:214:16: AIR301 `airflow.providers.common.io.datasets.file.create_dataset` is removed in Airflow 3.0 | 212 | # airflow.providers.common.io 213 | common_io_file.convert_dataset_to_openlineage 214 | common_io_file.create_dataset - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 215 | common_io_file.sanitize_uri | = help: Use `airflow.providers.common.io.assets.file.create_asset` instead -AIR302_names.py:215:16: AIR302 `airflow.providers.common.io.datasets.file.sanitize_uri` is removed in Airflow 3.0 +AIR301_names.py:215:16: AIR301 `airflow.providers.common.io.datasets.file.sanitize_uri` is removed in Airflow 3.0 | 213 | common_io_file.convert_dataset_to_openlineage 214 | common_io_file.create_dataset 215 | common_io_file.sanitize_uri - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 216 | 217 | # airflow.providers.fab | = help: Use `airflow.providers.common.io.assets.file.sanitize_uri` instead -AIR302_names.py:218:18: AIR302 `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 +AIR301_names.py:218:18: AIR301 `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 | 217 | # airflow.providers.fab 218 | fab_auth_manager.is_authorized_dataset - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 219 | 220 | # airflow.providers.google | = help: Use `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_asset` instead -AIR302_names.py:223:5: AIR302 `airflow.providers.google.datasets.gcs.create_dataset` is removed in Airflow 3.0 +AIR301_names.py:223:5: AIR301 `airflow.providers.google.datasets.gcs.create_dataset` is removed in Airflow 3.0 | 221 | bigquery.sanitize_uri 222 | 223 | gcs.create_dataset - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 224 | gcs.sanitize_uri 225 | gcs.convert_dataset_to_openlineage | = help: Use `airflow.providers.google.assets.gcs.create_asset` instead -AIR302_names.py:224:5: AIR302 `airflow.providers.google.datasets.gcs.sanitize_uri` is removed in Airflow 3.0 +AIR301_names.py:224:5: AIR301 `airflow.providers.google.datasets.gcs.sanitize_uri` is removed in Airflow 3.0 | 223 | gcs.create_dataset 224 | gcs.sanitize_uri - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 225 | gcs.convert_dataset_to_openlineage | = help: Use `airflow.providers.google.assets.gcs.sanitize_uri` instead -AIR302_names.py:225:5: AIR302 `airflow.providers.google.datasets.gcs.convert_dataset_to_openlineage` is removed in Airflow 3.0 +AIR301_names.py:225:5: AIR301 `airflow.providers.google.datasets.gcs.convert_dataset_to_openlineage` is removed in Airflow 3.0 | 223 | gcs.create_dataset 224 | gcs.sanitize_uri 225 | gcs.convert_dataset_to_openlineage - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 226 | 227 | # airflow.providers.mysql | = help: Use `airflow.providers.google.assets.gcs.convert_asset_to_openlineage` instead -AIR302_names.py:228:7: AIR302 `airflow.providers.mysql.datasets.mysql.sanitize_uri` is removed in Airflow 3.0 +AIR301_names.py:228:7: AIR301 `airflow.providers.mysql.datasets.mysql.sanitize_uri` is removed in Airflow 3.0 | 227 | # airflow.providers.mysql 228 | mysql.sanitize_uri - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 229 | 230 | # airflow.providers.openlineage | = help: Use `airflow.providers.mysql.assets.mysql.sanitize_uri` instead -AIR302_names.py:231:1: AIR302 `airflow.providers.openlineage.utils.utils.DatasetInfo` is removed in Airflow 3.0 +AIR301_names.py:231:1: AIR301 `airflow.providers.openlineage.utils.utils.DatasetInfo` is removed in Airflow 3.0 | 230 | # airflow.providers.openlineage 231 | DatasetInfo() - | ^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^ AIR301 232 | translate_airflow_dataset | = help: Use `airflow.providers.openlineage.utils.utils.AssetInfo` instead -AIR302_names.py:232:1: AIR302 `airflow.providers.openlineage.utils.utils.translate_airflow_dataset` is removed in Airflow 3.0 +AIR301_names.py:232:1: AIR301 `airflow.providers.openlineage.utils.utils.translate_airflow_dataset` is removed in Airflow 3.0 | 230 | # airflow.providers.openlineage 231 | DatasetInfo() 232 | translate_airflow_dataset - | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 233 | 234 | # airflow.providers.postgres | = help: Use `airflow.providers.openlineage.utils.utils.translate_airflow_asset` instead -AIR302_names.py:235:10: AIR302 `airflow.providers.postgres.datasets.postgres.sanitize_uri` is removed in Airflow 3.0 +AIR301_names.py:235:10: AIR301 `airflow.providers.postgres.datasets.postgres.sanitize_uri` is removed in Airflow 3.0 | 234 | # airflow.providers.postgres 235 | postgres.sanitize_uri - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 236 | 237 | # airflow.providers.trino | = help: Use `airflow.providers.postgres.assets.postgres.sanitize_uri` instead -AIR302_names.py:238:7: AIR302 `airflow.providers.trino.datasets.trino.sanitize_uri` is removed in Airflow 3.0 +AIR301_names.py:238:7: AIR301 `airflow.providers.trino.datasets.trino.sanitize_uri` is removed in Airflow 3.0 | 237 | # airflow.providers.trino 238 | trino.sanitize_uri - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 239 | 240 | # airflow.secrets | = help: Use `airflow.providers.trino.assets.trino.sanitize_uri` instead -AIR302_names.py:243:1: AIR302 `airflow.secrets.local_filesystem.load_connections` is removed in Airflow 3.0 +AIR301_names.py:243:1: AIR301 `airflow.secrets.local_filesystem.load_connections` is removed in Airflow 3.0 | 241 | # get_connection 242 | LocalFilesystemBackend() 243 | load_connections - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 244 | 245 | # airflow.security.permissions | = help: Use `airflow.secrets.local_filesystem.load_connections_dict` instead -AIR302_names.py:246:1: AIR302 `airflow.security.permissions.RESOURCE_DATASET` is removed in Airflow 3.0 +AIR301_names.py:246:1: AIR301 `airflow.security.permissions.RESOURCE_DATASET` is removed in Airflow 3.0 | 245 | # airflow.security.permissions 246 | RESOURCE_DATASET - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 247 | 248 | # airflow.sensors.base_sensor_operator | = help: Use `airflow.security.permissions.RESOURCE_ASSET` instead -AIR302_names.py:249:1: AIR302 `airflow.sensors.base_sensor_operator.BaseSensorOperator` is removed in Airflow 3.0 +AIR301_names.py:249:1: AIR301 `airflow.sensors.base_sensor_operator.BaseSensorOperator` is removed in Airflow 3.0 | 248 | # airflow.sensors.base_sensor_operator 249 | BaseSensorOperator() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 250 | 251 | # airflow.sensors.date_time_sensor | = help: Use `airflow.sdk.bases.sensor.BaseSensorOperator` instead -AIR302_names.py:252:1: AIR302 `airflow.sensors.date_time_sensor.DateTimeSensor` is removed in Airflow 3.0 +AIR301_names.py:252:1: AIR301 `airflow.sensors.date_time_sensor.DateTimeSensor` is removed in Airflow 3.0 | 251 | # airflow.sensors.date_time_sensor 252 | DateTimeSensor() - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 253 | 254 | # airflow.sensors.external_task | = help: Use `airflow.sensors.date_time.DateTimeSensor` instead -AIR302_names.py:255:1: AIR302 `airflow.sensors.external_task.ExternalTaskSensorLink` is removed in Airflow 3.0 +AIR301_names.py:255:1: AIR301 `airflow.sensors.external_task.ExternalTaskSensorLink` is removed in Airflow 3.0 | 254 | # airflow.sensors.external_task 255 | ExternalTaskSensorLink() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR301 256 | ExternalTaskMarker() 257 | ExternalTaskSensor() | = help: Use `airflow.sensors.external_task.ExternalDagLink` instead -AIR302_names.py:256:1: AIR302 `airflow.sensors.external_task.ExternalTaskMarker` is removed in Airflow 3.0 +AIR301_names.py:256:1: AIR301 `airflow.sensors.external_task.ExternalTaskMarker` is removed in Airflow 3.0 | 254 | # airflow.sensors.external_task 255 | ExternalTaskSensorLink() 256 | ExternalTaskMarker() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 257 | ExternalTaskSensor() | = help: Use `airflow.sensors.external_task.ExternalTaskMarker` instead -AIR302_names.py:257:1: AIR302 `airflow.sensors.external_task.ExternalTaskSensor` is removed in Airflow 3.0 +AIR301_names.py:257:1: AIR301 `airflow.sensors.external_task.ExternalTaskSensor` is removed in Airflow 3.0 | 255 | ExternalTaskSensorLink() 256 | ExternalTaskMarker() 257 | ExternalTaskSensor() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 258 | 259 | # airflow.sensors.external_task_sensor | = help: Use `airflow.sensors.external_task.ExternalTaskSensor` instead -AIR302_names.py:260:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskMarker` is removed in Airflow 3.0 +AIR301_names.py:260:1: AIR301 `airflow.sensors.external_task_sensor.ExternalTaskMarker` is removed in Airflow 3.0 | 259 | # airflow.sensors.external_task_sensor 260 | ExternalTaskMarkerFromExternalTaskSensor() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 261 | ExternalTaskSensorFromExternalTaskSensor() 262 | ExternalTaskSensorLinkFromExternalTaskSensor() | = help: Use `airflow.sensors.external_task.ExternalTaskMarker` instead -AIR302_names.py:261:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensor` is removed in Airflow 3.0 +AIR301_names.py:261:1: AIR301 `airflow.sensors.external_task_sensor.ExternalTaskSensor` is removed in Airflow 3.0 | 259 | # airflow.sensors.external_task_sensor 260 | ExternalTaskMarkerFromExternalTaskSensor() 261 | ExternalTaskSensorFromExternalTaskSensor() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 262 | ExternalTaskSensorLinkFromExternalTaskSensor() | = help: Use `airflow.sensors.external_task.ExternalTaskSensor` instead -AIR302_names.py:262:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is removed in Airflow 3.0 +AIR301_names.py:262:1: AIR301 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is removed in Airflow 3.0 | 260 | ExternalTaskMarkerFromExternalTaskSensor() 261 | ExternalTaskSensorFromExternalTaskSensor() 262 | ExternalTaskSensorLinkFromExternalTaskSensor() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 263 | 264 | # airflow.sensors.time_delta_sensor | = help: Use `airflow.sensors.external_task.ExternalDagLink` instead -AIR302_names.py:265:1: AIR302 `airflow.sensors.time_delta_sensor.TimeDeltaSensor` is removed in Airflow 3.0 +AIR301_names.py:265:1: AIR301 `airflow.sensors.time_delta_sensor.TimeDeltaSensor` is removed in Airflow 3.0 | 264 | # airflow.sensors.time_delta_sensor 265 | TimeDeltaSensor() - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 266 | 267 | # airflow.timetables | = help: Use `airflow.sensors.time_delta.TimeDeltaSensor` instead -AIR302_names.py:268:1: AIR302 `airflow.timetables.datasets.DatasetOrTimeSchedule` is removed in Airflow 3.0 +AIR301_names.py:268:1: AIR301 `airflow.timetables.datasets.DatasetOrTimeSchedule` is removed in Airflow 3.0 | 267 | # airflow.timetables 268 | DatasetOrTimeSchedule() - | ^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^ AIR301 269 | DatasetTriggeredTimetable() | = help: Use `airflow.timetables.assets.AssetOrTimeSchedule` instead -AIR302_names.py:269:1: AIR302 `airflow.timetables.simple.DatasetTriggeredTimetable` is removed in Airflow 3.0 +AIR301_names.py:269:1: AIR301 `airflow.timetables.simple.DatasetTriggeredTimetable` is removed in Airflow 3.0 | 267 | # airflow.timetables 268 | DatasetOrTimeSchedule() 269 | DatasetTriggeredTimetable() - | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 270 | 271 | # airflow.triggers.external_task | = help: Use `airflow.timetables.simple.AssetTriggeredTimetable` instead -AIR302_names.py:272:1: AIR302 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0 +AIR301_names.py:272:1: AIR301 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0 | 271 | # airflow.triggers.external_task 272 | TaskStateTrigger() - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 273 | 274 | # airflow.utils.date | -AIR302_names.py:275:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0 +AIR301_names.py:275:7: AIR301 `airflow.utils.dates.date_range` is removed in Airflow 3.0 | 274 | # airflow.utils.date 275 | dates.date_range - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 276 | dates.days_ago | -AIR302_names.py:276:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 +AIR301_names.py:276:7: AIR301 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 | 274 | # airflow.utils.date 275 | dates.date_range 276 | dates.days_ago - | ^^^^^^^^ AIR302 + | ^^^^^^^^ AIR301 277 | 278 | date_range | = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead -AIR302_names.py:278:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0 +AIR301_names.py:278:1: AIR301 `airflow.utils.dates.date_range` is removed in Airflow 3.0 | 276 | dates.days_ago 277 | 278 | date_range - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 279 | days_ago 280 | infer_time_unit | -AIR302_names.py:279:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 +AIR301_names.py:279:1: AIR301 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 | 278 | date_range 279 | days_ago - | ^^^^^^^^ AIR302 + | ^^^^^^^^ AIR301 280 | infer_time_unit 281 | parse_execution_date | = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead -AIR302_names.py:280:1: AIR302 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0 +AIR301_names.py:280:1: AIR301 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0 | 278 | date_range 279 | days_ago 280 | infer_time_unit - | ^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^ AIR301 281 | parse_execution_date 282 | round_time | -AIR302_names.py:281:1: AIR302 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0 +AIR301_names.py:281:1: AIR301 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0 | 279 | days_ago 280 | infer_time_unit 281 | parse_execution_date - | ^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^ AIR301 282 | round_time 283 | scale_time_units | -AIR302_names.py:282:1: AIR302 `airflow.utils.dates.round_time` is removed in Airflow 3.0 +AIR301_names.py:282:1: AIR301 `airflow.utils.dates.round_time` is removed in Airflow 3.0 | 280 | infer_time_unit 281 | parse_execution_date 282 | round_time - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 283 | scale_time_units | -AIR302_names.py:283:1: AIR302 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0 +AIR301_names.py:283:1: AIR301 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0 | 281 | parse_execution_date 282 | round_time 283 | scale_time_units - | ^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^ AIR301 284 | 285 | # This one was not deprecated. | -AIR302_names.py:290:1: AIR302 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0 +AIR301_names.py:290:1: AIR301 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0 | 289 | # airflow.utils.dag_cycle_tester 290 | test_cycle - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 291 | 292 | # airflow.utils.dag_parsing_context | -AIR302_names.py:293:1: AIR302 `airflow.utils.dag_parsing_context.get_parsing_context` is removed in Airflow 3.0 +AIR301_names.py:293:1: AIR301 `airflow.utils.dag_parsing_context.get_parsing_context` is removed in Airflow 3.0 | 292 | # airflow.utils.dag_parsing_context 293 | get_parsing_context - | ^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^ AIR301 294 | 295 | # airflow.utils.db | = help: Use `airflow.sdk.get_parsing_context` instead -AIR302_names.py:296:1: AIR302 `airflow.utils.db.create_session` is removed in Airflow 3.0 +AIR301_names.py:296:1: AIR301 `airflow.utils.db.create_session` is removed in Airflow 3.0 | 295 | # airflow.utils.db 296 | create_session - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 297 | 298 | # airflow.utils.decorators | -AIR302_names.py:299:1: AIR302 `airflow.utils.decorators.apply_defaults` is removed in Airflow 3.0; `apply_defaults` is now unconditionally done and can be safely removed. +AIR301_names.py:299:1: AIR301 `airflow.utils.decorators.apply_defaults` is removed in Airflow 3.0; `apply_defaults` is now unconditionally done and can be safely removed. | 298 | # airflow.utils.decorators 299 | apply_defaults - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 300 | 301 | # airflow.utils.file | -AIR302_names.py:302:1: AIR302 `airflow.utils.file.TemporaryDirectory` is removed in Airflow 3.0 +AIR301_names.py:302:1: AIR301 `airflow.utils.file.TemporaryDirectory` is removed in Airflow 3.0 | 301 | # airflow.utils.file 302 | TemporaryDirectory() - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 303 | mkdirs | = help: Use `tempfile.TemporaryDirectory` instead -AIR302_names.py:303:1: AIR302 `airflow.utils.file.mkdirs` is removed in Airflow 3.0 +AIR301_names.py:303:1: AIR301 `airflow.utils.file.mkdirs` is removed in Airflow 3.0 | 301 | # airflow.utils.file 302 | TemporaryDirectory() 303 | mkdirs - | ^^^^^^ AIR302 + | ^^^^^^ AIR301 304 | 305 | # airflow.utils.helpers | = help: Use `pathlib.Path({path}).mkdir` instead -AIR302_names.py:306:1: AIR302 `airflow.utils.helpers.chain` is removed in Airflow 3.0 +AIR301_names.py:306:1: AIR301 `airflow.utils.helpers.chain` is removed in Airflow 3.0 | 305 | # airflow.utils.helpers 306 | helper_chain - | ^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^ AIR301 307 | helper_cross_downstream | = help: Use `airflow.sdk.chain` instead -AIR302_names.py:307:1: AIR302 `airflow.utils.helpers.cross_downstream` is removed in Airflow 3.0 +AIR301_names.py:307:1: AIR301 `airflow.utils.helpers.cross_downstream` is removed in Airflow 3.0 | 305 | # airflow.utils.helpers 306 | helper_chain 307 | helper_cross_downstream - | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^ AIR301 308 | 309 | # airflow.utils.log | = help: Use `airflow.sdk.cross_downstream` instead -AIR302_names.py:310:1: AIR302 `airflow.utils.log.secrets_masker` is removed in Airflow 3.0 +AIR301_names.py:310:1: AIR301 `airflow.utils.log.secrets_masker` is removed in Airflow 3.0 | 309 | # airflow.utils.log 310 | secrets_masker - | ^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^ AIR301 311 | 312 | # airflow.utils.state | = help: Use `airflow.sdk.execution_time.secrets_masker` instead -AIR302_names.py:313:1: AIR302 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0 +AIR301_names.py:313:1: AIR301 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0 | 312 | # airflow.utils.state 313 | SHUTDOWN - | ^^^^^^^^ AIR302 + | ^^^^^^^^ AIR301 314 | terminating_states | -AIR302_names.py:314:1: AIR302 `airflow.utils.state.terminating_states` is removed in Airflow 3.0 +AIR301_names.py:314:1: AIR301 `airflow.utils.state.terminating_states` is removed in Airflow 3.0 | 312 | # airflow.utils.state 313 | SHUTDOWN 314 | terminating_states - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 315 | 316 | # airflow.utils.trigger_rule | -AIR302_names.py:317:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.DUMMY` is removed in Airflow 3.0 +AIR301_names.py:317:13: AIR301 `airflow.utils.trigger_rule.TriggerRule.DUMMY` is removed in Airflow 3.0 | 316 | # airflow.utils.trigger_rule 317 | TriggerRule.DUMMY - | ^^^^^ AIR302 + | ^^^^^ AIR301 318 | TriggerRule.NONE_FAILED_OR_SKIPPED | -AIR302_names.py:318:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.NONE_FAILED_OR_SKIPPED` is removed in Airflow 3.0 +AIR301_names.py:318:13: AIR301 `airflow.utils.trigger_rule.TriggerRule.NONE_FAILED_OR_SKIPPED` is removed in Airflow 3.0 | 316 | # airflow.utils.trigger_rule 317 | TriggerRule.DUMMY 318 | TriggerRule.NONE_FAILED_OR_SKIPPED - | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR301 319 | 320 | # airflow.www.auth | -AIR302_names.py:321:1: AIR302 `airflow.www.auth.has_access` is removed in Airflow 3.0 +AIR301_names.py:321:1: AIR301 `airflow.www.auth.has_access` is removed in Airflow 3.0 | 320 | # airflow.www.auth 321 | has_access - | ^^^^^^^^^^ AIR302 + | ^^^^^^^^^^ AIR301 322 | has_access_dataset | = help: Use `airflow.www.auth.has_access_*` instead -AIR302_names.py:322:1: AIR302 `airflow.www.auth.has_access_dataset` is removed in Airflow 3.0 +AIR301_names.py:322:1: AIR301 `airflow.www.auth.has_access_dataset` is removed in Airflow 3.0 | 320 | # airflow.www.auth 321 | has_access 322 | has_access_dataset - | ^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^ AIR301 323 | 324 | # airflow.www.utils | = help: Use `airflow.www.auth.has_access_dataset.has_access_asset` instead -AIR302_names.py:325:1: AIR302 `airflow.www.utils.get_sensitive_variables_fields` is removed in Airflow 3.0 +AIR301_names.py:325:1: AIR301 `airflow.www.utils.get_sensitive_variables_fields` is removed in Airflow 3.0 | 324 | # airflow.www.utils 325 | get_sensitive_variables_fields - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 326 | should_hide_value_for_key | = help: Use `airflow.utils.log.secrets_masker.get_sensitive_variables_fields` instead -AIR302_names.py:326:1: AIR302 `airflow.www.utils.should_hide_value_for_key` is removed in Airflow 3.0 +AIR301_names.py:326:1: AIR301 `airflow.www.utils.should_hide_value_for_key` is removed in Airflow 3.0 | 324 | # airflow.www.utils 325 | get_sensitive_variables_fields 326 | should_hide_value_for_key - | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 + | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR301 | = help: Use `airflow.utils.log.secrets_masker.should_hide_value_for_key` instead diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_names_try.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names_try.py.snap similarity index 75% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_names_try.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names_try.py.snap index 707c6a2775..6d6d3986fe 100644 --- a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302_names_try.py.snap +++ b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR301_AIR301_names_try.py.snap @@ -1,5 +1,4 @@ --- source: crates/ruff_linter/src/rules/airflow/mod.rs -snapshot_kind: text --- diff --git a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR303_AIR303.py.snap b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302.py.snap similarity index 78% rename from crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR303_AIR303.py.snap rename to crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302.py.snap index 3748598556..faffeacab0 100644 --- a/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR303_AIR303.py.snap +++ b/crates/ruff_linter/src/rules/airflow/snapshots/ruff_linter__rules__airflow__tests__AIR302_AIR302.py.snap @@ -1,1746 +1,1745 @@ --- source: crates/ruff_linter/src/rules/airflow/mod.rs -snapshot_kind: text --- -AIR303.py:212:1: AIR303 `airflow.hooks.S3_hook.provide_bucket_name` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:212:1: AIR302 `airflow.hooks.S3_hook.provide_bucket_name` is moved into `amazon` provider in Airflow 3.0; | 211 | # apache-airflow-providers-amazon 212 | provide_bucket_name() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 213 | GCSToS3Operator() 214 | GoogleApiToS3Operator() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.hooks.s3.provide_bucket_name` instead. -AIR303.py:213:1: AIR303 `airflow.operators.gcs_to_s3.GCSToS3Operator` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:213:1: AIR302 `airflow.operators.gcs_to_s3.GCSToS3Operator` is moved into `amazon` provider in Airflow 3.0; | 211 | # apache-airflow-providers-amazon 212 | provide_bucket_name() 213 | GCSToS3Operator() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 214 | GoogleApiToS3Operator() 215 | GoogleApiToS3Transfer() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.gcs_to_s3.GCSToS3Operator` instead. -AIR303.py:214:1: AIR303 `airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Operator` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:214:1: AIR302 `airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Operator` is moved into `amazon` provider in Airflow 3.0; | 212 | provide_bucket_name() 213 | GCSToS3Operator() 214 | GoogleApiToS3Operator() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 215 | GoogleApiToS3Transfer() 216 | RedshiftToS3Operator() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.google_api_to_s3.GoogleApiToS3Operator` instead. -AIR303.py:215:1: AIR303 `airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Transfer` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:215:1: AIR302 `airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Transfer` is moved into `amazon` provider in Airflow 3.0; | 213 | GCSToS3Operator() 214 | GoogleApiToS3Operator() 215 | GoogleApiToS3Transfer() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 216 | RedshiftToS3Operator() 217 | RedshiftToS3Transfer() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.google_api_to_s3.GoogleApiToS3Operator` instead. -AIR303.py:216:1: AIR303 `airflow.operators.redshift_to_s3_operator.RedshiftToS3Operator` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:216:1: AIR302 `airflow.operators.redshift_to_s3_operator.RedshiftToS3Operator` is moved into `amazon` provider in Airflow 3.0; | 214 | GoogleApiToS3Operator() 215 | GoogleApiToS3Transfer() 216 | RedshiftToS3Operator() - | ^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^ AIR302 217 | RedshiftToS3Transfer() 218 | S3FileTransformOperator() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.redshift_to_s3.RedshiftToS3Operator` instead. -AIR303.py:217:1: AIR303 `airflow.operators.redshift_to_s3_operator.RedshiftToS3Transfer` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:217:1: AIR302 `airflow.operators.redshift_to_s3_operator.RedshiftToS3Transfer` is moved into `amazon` provider in Airflow 3.0; | 215 | GoogleApiToS3Transfer() 216 | RedshiftToS3Operator() 217 | RedshiftToS3Transfer() - | ^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^ AIR302 218 | S3FileTransformOperator() 219 | S3Hook() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.redshift_to_s3.RedshiftToS3Operator` instead. -AIR303.py:218:1: AIR303 `airflow.operators.s3_file_transform_operator.S3FileTransformOperator` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:218:1: AIR302 `airflow.operators.s3_file_transform_operator.S3FileTransformOperator` is moved into `amazon` provider in Airflow 3.0; | 216 | RedshiftToS3Operator() 217 | RedshiftToS3Transfer() 218 | S3FileTransformOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 219 | S3Hook() 220 | S3KeySensor() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.operators.s3_file_transform.S3FileTransformOperator` instead. -AIR303.py:219:1: AIR303 `airflow.hooks.S3_hook.S3Hook` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:219:1: AIR302 `airflow.hooks.S3_hook.S3Hook` is moved into `amazon` provider in Airflow 3.0; | 217 | RedshiftToS3Transfer() 218 | S3FileTransformOperator() 219 | S3Hook() - | ^^^^^^ AIR303 + | ^^^^^^ AIR302 220 | S3KeySensor() 221 | S3ToRedshiftOperator() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.hooks.s3.S3Hook` instead. -AIR303.py:220:1: AIR303 `airflow.sensors.s3_key_sensor.S3KeySensor` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:220:1: AIR302 `airflow.sensors.s3_key_sensor.S3KeySensor` is moved into `amazon` provider in Airflow 3.0; | 218 | S3FileTransformOperator() 219 | S3Hook() 220 | S3KeySensor() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 221 | S3ToRedshiftOperator() 222 | S3ToRedshiftTransfer() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `S3KeySensor` instead. -AIR303.py:221:1: AIR303 `airflow.operators.s3_to_redshift_operator.S3ToRedshiftOperator` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:221:1: AIR302 `airflow.operators.s3_to_redshift_operator.S3ToRedshiftOperator` is moved into `amazon` provider in Airflow 3.0; | 219 | S3Hook() 220 | S3KeySensor() 221 | S3ToRedshiftOperator() - | ^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^ AIR302 222 | S3ToRedshiftTransfer() | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.s3_to_redshift.S3ToRedshiftOperator` instead. -AIR303.py:222:1: AIR303 `airflow.operators.s3_to_redshift_operator.S3ToRedshiftTransfer` is moved into `amazon` provider in Airflow 3.0; +AIR302.py:222:1: AIR302 `airflow.operators.s3_to_redshift_operator.S3ToRedshiftTransfer` is moved into `amazon` provider in Airflow 3.0; | 220 | S3KeySensor() 221 | S3ToRedshiftOperator() 222 | S3ToRedshiftTransfer() - | ^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^ AIR302 223 | 224 | # apache-airflow-providers-celery | = help: Install `apache-airflow-provider-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.s3_to_redshift.S3ToRedshiftOperator` instead. -AIR303.py:225:1: AIR303 `airflow.config_templates.default_celery.DEFAULT_CELERY_CONFIG` is moved into `celery` provider in Airflow 3.0; +AIR302.py:225:1: AIR302 `airflow.config_templates.default_celery.DEFAULT_CELERY_CONFIG` is moved into `celery` provider in Airflow 3.0; | 224 | # apache-airflow-providers-celery 225 | DEFAULT_CELERY_CONFIG - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 226 | app 227 | CeleryExecutor() | = help: Install `apache-airflow-provider-celery>=3.3.0` and use `airflow.providers.celery.executors.default_celery.DEFAULT_CELERY_CONFIG` instead. -AIR303.py:226:1: AIR303 `airflow.executors.celery_executor.app` is moved into `celery` provider in Airflow 3.0; +AIR302.py:226:1: AIR302 `airflow.executors.celery_executor.app` is moved into `celery` provider in Airflow 3.0; | 224 | # apache-airflow-providers-celery 225 | DEFAULT_CELERY_CONFIG 226 | app - | ^^^ AIR303 + | ^^^ AIR302 227 | CeleryExecutor() 228 | CeleryKubernetesExecutor() | = help: Install `apache-airflow-provider-celery>=3.3.0` and use `airflow.providers.celery.executors.celery_executor_utils.app` instead. -AIR303.py:227:1: AIR303 `airflow.executors.celery_executor.CeleryExecutor` is moved into `celery` provider in Airflow 3.0; +AIR302.py:227:1: AIR302 `airflow.executors.celery_executor.CeleryExecutor` is moved into `celery` provider in Airflow 3.0; | 225 | DEFAULT_CELERY_CONFIG 226 | app 227 | CeleryExecutor() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 228 | CeleryKubernetesExecutor() | = help: Install `apache-airflow-provider-celery>=3.3.0` and use `airflow.providers.celery.executors.celery_executor.CeleryExecutor` instead. -AIR303.py:228:1: AIR303 `airflow.executors.celery_kubernetes_executor.CeleryKubernetesExecutor` is moved into `celery` provider in Airflow 3.0; +AIR302.py:228:1: AIR302 `airflow.executors.celery_kubernetes_executor.CeleryKubernetesExecutor` is moved into `celery` provider in Airflow 3.0; | 226 | app 227 | CeleryExecutor() 228 | CeleryKubernetesExecutor() - | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 229 | 230 | # apache-airflow-providers-common-sql | = help: Install `apache-airflow-provider-celery>=3.3.0` and use `airflow.providers.celery.executors.celery_kubernetes_executor.CeleryKubernetesExecutor` instead. -AIR303.py:231:1: AIR303 `airflow.operators.sql._convert_to_float_if_possible` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:231:1: AIR302 `airflow.operators.sql._convert_to_float_if_possible` is moved into `common-sql` provider in Airflow 3.0; | 230 | # apache-airflow-providers-common-sql 231 | _convert_to_float_if_possible() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 232 | parse_boolean() 233 | BaseSQLOperator() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql._convert_to_float_if_possible` instead. -AIR303.py:232:1: AIR303 `airflow.operators.sql.parse_boolean` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:232:1: AIR302 `airflow.operators.sql.parse_boolean` is moved into `common-sql` provider in Airflow 3.0; | 230 | # apache-airflow-providers-common-sql 231 | _convert_to_float_if_possible() 232 | parse_boolean() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 233 | BaseSQLOperator() 234 | BashOperator() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql.parse_boolean` instead. -AIR303.py:233:1: AIR303 `airflow.operators.sql.BaseSQLOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:233:1: AIR302 `airflow.operators.sql.BaseSQLOperator` is moved into `common-sql` provider in Airflow 3.0; | 231 | _convert_to_float_if_possible() 232 | parse_boolean() 233 | BaseSQLOperator() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 234 | BashOperator() 235 | LegacyBashOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.BaseSQLOperator` instead. -AIR303.py:234:1: AIR303 Import path `airflow.operators.bash` is moved into `standard` provider in Airflow 3.0; +AIR302.py:234:1: AIR302 Import path `airflow.operators.bash` is moved into `standard` provider in Airflow 3.0; | 232 | parse_boolean() 233 | BaseSQLOperator() 234 | BashOperator() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 235 | LegacyBashOperator() 236 | BranchSQLOperator() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.operators.bash` instead. -AIR303.py:235:1: AIR303 Import path `airflow.operators.bash_operator` is moved into `standard` provider in Airflow 3.0; +AIR302.py:235:1: AIR302 Import path `airflow.operators.bash_operator` is moved into `standard` provider in Airflow 3.0; | 233 | BaseSQLOperator() 234 | BashOperator() 235 | LegacyBashOperator() - | ^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^ AIR302 236 | BranchSQLOperator() 237 | CheckOperator() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.operators.bash` instead. -AIR303.py:236:1: AIR303 `airflow.operators.sql.BranchSQLOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:236:1: AIR302 `airflow.operators.sql.BranchSQLOperator` is moved into `common-sql` provider in Airflow 3.0; | 234 | BashOperator() 235 | LegacyBashOperator() 236 | BranchSQLOperator() - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 237 | CheckOperator() 238 | ConnectorProtocol() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.BranchSQLOperator` instead. -AIR303.py:237:1: AIR303 `airflow.operators.check_operator.CheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:237:1: AIR302 `airflow.operators.check_operator.CheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 235 | LegacyBashOperator() 236 | BranchSQLOperator() 237 | CheckOperator() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 238 | ConnectorProtocol() 239 | DbApiHook() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead. -AIR303.py:238:1: AIR303 `airflow.hooks.dbapi.ConnectorProtocol` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:238:1: AIR302 `airflow.hooks.dbapi.ConnectorProtocol` is moved into `common-sql` provider in Airflow 3.0; | 236 | BranchSQLOperator() 237 | CheckOperator() 238 | ConnectorProtocol() - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 239 | DbApiHook() 240 | DbApiHook2() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.hooks.sql.ConnectorProtocol` instead. -AIR303.py:239:1: AIR303 `airflow.hooks.dbapi.DbApiHook` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:239:1: AIR302 `airflow.hooks.dbapi.DbApiHook` is moved into `common-sql` provider in Airflow 3.0; | 237 | CheckOperator() 238 | ConnectorProtocol() 239 | DbApiHook() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 240 | DbApiHook2() 241 | IntervalCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.hooks.sql.DbApiHook` instead. -AIR303.py:240:1: AIR303 `airflow.hooks.dbapi_hook.DbApiHook` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:240:1: AIR302 `airflow.hooks.dbapi_hook.DbApiHook` is moved into `common-sql` provider in Airflow 3.0; | 238 | ConnectorProtocol() 239 | DbApiHook() 240 | DbApiHook2() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 241 | IntervalCheckOperator() 242 | PrestoCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.hooks.sql.DbApiHook` instead. -AIR303.py:241:1: AIR303 `airflow.operators.check_operator.IntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:241:1: AIR302 `airflow.operators.check_operator.IntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 239 | DbApiHook() 240 | DbApiHook2() 241 | IntervalCheckOperator() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 242 | PrestoCheckOperator() 243 | PrestoIntervalCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead. -AIR303.py:242:1: AIR303 `airflow.operators.presto_check_operator.PrestoCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:242:1: AIR302 `airflow.operators.presto_check_operator.PrestoCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 240 | DbApiHook2() 241 | IntervalCheckOperator() 242 | PrestoCheckOperator() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 243 | PrestoIntervalCheckOperator() 244 | PrestoValueCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead. -AIR303.py:243:1: AIR303 `airflow.operators.presto_check_operator.PrestoIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:243:1: AIR302 `airflow.operators.presto_check_operator.PrestoIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 241 | IntervalCheckOperator() 242 | PrestoCheckOperator() 243 | PrestoIntervalCheckOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 244 | PrestoValueCheckOperator() 245 | SQLCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead. -AIR303.py:244:1: AIR303 `airflow.operators.presto_check_operator.PrestoValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:244:1: AIR302 `airflow.operators.presto_check_operator.PrestoValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 242 | PrestoCheckOperator() 243 | PrestoIntervalCheckOperator() 244 | PrestoValueCheckOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 245 | SQLCheckOperator() 246 | SQLCheckOperator2() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead. -AIR303.py:245:1: AIR303 `airflow.operators.check_operator.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:245:1: AIR302 `airflow.operators.check_operator.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 243 | PrestoIntervalCheckOperator() 244 | PrestoValueCheckOperator() 245 | SQLCheckOperator() - | ^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^ AIR302 246 | SQLCheckOperator2() 247 | SQLCheckOperator3() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead. -AIR303.py:246:1: AIR303 `airflow.operators.presto_check_operator.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:246:1: AIR302 `airflow.operators.presto_check_operator.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 244 | PrestoValueCheckOperator() 245 | SQLCheckOperator() 246 | SQLCheckOperator2() - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 247 | SQLCheckOperator3() 248 | SQLColumnCheckOperator2() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead. -AIR303.py:247:1: AIR303 `airflow.operators.sql.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:247:1: AIR302 `airflow.operators.sql.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 245 | SQLCheckOperator() 246 | SQLCheckOperator2() 247 | SQLCheckOperator3() - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 248 | SQLColumnCheckOperator2() 249 | SQLIntervalCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead. -AIR303.py:248:1: AIR303 `airflow.operators.sql.SQLColumnCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:248:1: AIR302 `airflow.operators.sql.SQLColumnCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 246 | SQLCheckOperator2() 247 | SQLCheckOperator3() 248 | SQLColumnCheckOperator2() - | ^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 249 | SQLIntervalCheckOperator() 250 | SQLIntervalCheckOperator2() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql.SQLColumnCheckOperator` instead. -AIR303.py:249:1: AIR303 `airflow.operators.check_operator.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:249:1: AIR302 `airflow.operators.check_operator.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 247 | SQLCheckOperator3() 248 | SQLColumnCheckOperator2() 249 | SQLIntervalCheckOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 250 | SQLIntervalCheckOperator2() 251 | SQLIntervalCheckOperator3() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead. -AIR303.py:250:1: AIR303 `airflow.operators.presto_check_operator.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:250:1: AIR302 `airflow.operators.presto_check_operator.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 248 | SQLColumnCheckOperator2() 249 | SQLIntervalCheckOperator() 250 | SQLIntervalCheckOperator2() - | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 251 | SQLIntervalCheckOperator3() 252 | SQLTableCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead. -AIR303.py:251:1: AIR303 `airflow.operators.sql.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:251:1: AIR302 `airflow.operators.sql.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 249 | SQLIntervalCheckOperator() 250 | SQLIntervalCheckOperator2() 251 | SQLIntervalCheckOperator3() - | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 252 | SQLTableCheckOperator() 253 | SQLThresholdCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead. -AIR303.py:253:1: AIR303 `airflow.operators.check_operator.SQLThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:253:1: AIR302 `airflow.operators.check_operator.SQLThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 251 | SQLIntervalCheckOperator3() 252 | SQLTableCheckOperator() 253 | SQLThresholdCheckOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 254 | SQLThresholdCheckOperator2() 255 | SQLValueCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator` instead. -AIR303.py:254:1: AIR303 `airflow.operators.sql.SQLThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:254:1: AIR302 `airflow.operators.sql.SQLThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 252 | SQLTableCheckOperator() 253 | SQLThresholdCheckOperator() 254 | SQLThresholdCheckOperator2() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 255 | SQLValueCheckOperator() 256 | SQLValueCheckOperator2() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql.SQLTableCheckOperator` instead. -AIR303.py:255:1: AIR303 `airflow.operators.check_operator.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:255:1: AIR302 `airflow.operators.check_operator.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 253 | SQLThresholdCheckOperator() 254 | SQLThresholdCheckOperator2() 255 | SQLValueCheckOperator() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 256 | SQLValueCheckOperator2() 257 | SQLValueCheckOperator3() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead. -AIR303.py:256:1: AIR303 `airflow.operators.presto_check_operator.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:256:1: AIR302 `airflow.operators.presto_check_operator.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 254 | SQLThresholdCheckOperator2() 255 | SQLValueCheckOperator() 256 | SQLValueCheckOperator2() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 257 | SQLValueCheckOperator3() 258 | SqlSensor() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead. -AIR303.py:257:1: AIR303 `airflow.operators.sql.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:257:1: AIR302 `airflow.operators.sql.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 255 | SQLValueCheckOperator() 256 | SQLValueCheckOperator2() 257 | SQLValueCheckOperator3() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 258 | SqlSensor() 259 | SqlSensor2() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead. -AIR303.py:258:1: AIR303 `airflow.sensors.sql.SqlSensor` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:258:1: AIR302 `airflow.sensors.sql.SqlSensor` is moved into `common-sql` provider in Airflow 3.0; | 256 | SQLValueCheckOperator2() 257 | SQLValueCheckOperator3() 258 | SqlSensor() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 259 | SqlSensor2() 260 | ThresholdCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.0.0` and use `airflow.providers.common.sql.sensors.sql.SqlSensor` instead. -AIR303.py:260:1: AIR303 `airflow.operators.check_operator.ThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:260:1: AIR302 `airflow.operators.check_operator.ThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 258 | SqlSensor() 259 | SqlSensor2() 260 | ThresholdCheckOperator() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 261 | ValueCheckOperator() | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator` instead. -AIR303.py:261:1: AIR303 `airflow.operators.check_operator.ValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; +AIR302.py:261:1: AIR302 `airflow.operators.check_operator.ValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0; | 259 | SqlSensor2() 260 | ThresholdCheckOperator() 261 | ValueCheckOperator() - | ^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^ AIR302 262 | 263 | # apache-airflow-providers-daskexecutor | = help: Install `apache-airflow-provider-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead. -AIR303.py:264:1: AIR303 `airflow.executors.dask_executor.DaskExecutor` is moved into `daskexecutor` provider in Airflow 3.0; +AIR302.py:264:1: AIR302 `airflow.executors.dask_executor.DaskExecutor` is moved into `daskexecutor` provider in Airflow 3.0; | 263 | # apache-airflow-providers-daskexecutor 264 | DaskExecutor() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 265 | 266 | # apache-airflow-providers-docker | = help: Install `apache-airflow-provider-daskexecutor>=1.0.0` and use `airflow.providers.daskexecutor.executors.dask_executor.DaskExecutor` instead. -AIR303.py:267:1: AIR303 `airflow.hooks.docker_hook.DockerHook` is moved into `docker` provider in Airflow 3.0; +AIR302.py:267:1: AIR302 `airflow.hooks.docker_hook.DockerHook` is moved into `docker` provider in Airflow 3.0; | 266 | # apache-airflow-providers-docker 267 | DockerHook() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 268 | DockerOperator() | = help: Install `apache-airflow-provider-docker>=1.0.0` and use `airflow.providers.docker.hooks.docker.DockerHook` instead. -AIR303.py:268:1: AIR303 `airflow.operators.docker_operator.DockerOperator` is moved into `docker` provider in Airflow 3.0; +AIR302.py:268:1: AIR302 `airflow.operators.docker_operator.DockerOperator` is moved into `docker` provider in Airflow 3.0; | 266 | # apache-airflow-providers-docker 267 | DockerHook() 268 | DockerOperator() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 269 | 270 | # apache-airflow-providers-apache-druid | = help: Install `apache-airflow-provider-docker>=1.0.0` and use `airflow.providers.docker.operators.docker.DockerOperator` instead. -AIR303.py:271:1: AIR303 `airflow.hooks.druid_hook.DruidDbApiHook` is moved into `apache-druid` provider in Airflow 3.0; +AIR302.py:271:1: AIR302 `airflow.hooks.druid_hook.DruidDbApiHook` is moved into `apache-druid` provider in Airflow 3.0; | 270 | # apache-airflow-providers-apache-druid 271 | DruidDbApiHook() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 272 | DruidHook() 273 | DruidCheckOperator() | = help: Install `apache-airflow-provider-apache-druid>=1.0.0` and use `DruidDbApiHook` instead. -AIR303.py:272:1: AIR303 `airflow.hooks.druid_hook.DruidHook` is moved into `apache-druid` provider in Airflow 3.0; +AIR302.py:272:1: AIR302 `airflow.hooks.druid_hook.DruidHook` is moved into `apache-druid` provider in Airflow 3.0; | 270 | # apache-airflow-providers-apache-druid 271 | DruidDbApiHook() 272 | DruidHook() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 273 | DruidCheckOperator() | = help: Install `apache-airflow-provider-apache-druid>=1.0.0` and use `DruidHook` instead. -AIR303.py:273:1: AIR303 `airflow.operators.druid_check_operator.DruidCheckOperator` is moved into `apache-druid` provider in Airflow 3.0; +AIR302.py:273:1: AIR302 `airflow.operators.druid_check_operator.DruidCheckOperator` is moved into `apache-druid` provider in Airflow 3.0; | 271 | DruidDbApiHook() 272 | DruidHook() 273 | DruidCheckOperator() - | ^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^ AIR302 274 | 275 | # apache-airflow-providers-apache-hdfs | = help: Install `apache-airflow-provider-apache-druid>=1.0.0` and use `DruidCheckOperator` instead. -AIR303.py:276:1: AIR303 `airflow.hooks.webhdfs_hook.WebHDFSHook` is moved into `apache-hdfs` provider in Airflow 3.0; +AIR302.py:276:1: AIR302 `airflow.hooks.webhdfs_hook.WebHDFSHook` is moved into `apache-hdfs` provider in Airflow 3.0; | 275 | # apache-airflow-providers-apache-hdfs 276 | WebHDFSHook() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 277 | WebHdfsSensor() | = help: Install `apache-airflow-provider-apache-hdfs>=1.0.0` and use `airflow.providers.apache.hdfs.hooks.webhdfs.WebHDFSHook` instead. -AIR303.py:277:1: AIR303 `airflow.sensors.web_hdfs_sensor.WebHdfsSensor` is moved into `apache-hdfs` provider in Airflow 3.0; +AIR302.py:277:1: AIR302 `airflow.sensors.web_hdfs_sensor.WebHdfsSensor` is moved into `apache-hdfs` provider in Airflow 3.0; | 275 | # apache-airflow-providers-apache-hdfs 276 | WebHDFSHook() 277 | WebHdfsSensor() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 278 | 279 | # apache-airflow-providers-apache-hive | = help: Install `apache-airflow-provider-apache-hdfs>=1.0.0` and use `airflow.providers.apache.hdfs.sensors.web_hdfs.WebHdfsSensor` instead. -AIR303.py:280:1: AIR303 `airflow.hooks.hive_hooks.HIVE_QUEUE_PRIORITIES` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:280:1: AIR302 `airflow.hooks.hive_hooks.HIVE_QUEUE_PRIORITIES` is moved into `apache-hive` provider in Airflow 3.0; | 279 | # apache-airflow-providers-apache-hive 280 | HIVE_QUEUE_PRIORITIES - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 281 | closest_ds_partition() 282 | max_partition() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HIVE_QUEUE_PRIORITIES` instead. -AIR303.py:281:1: AIR303 `airflow.macros.hive.closest_ds_partition` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:281:1: AIR302 `airflow.macros.hive.closest_ds_partition` is moved into `apache-hive` provider in Airflow 3.0; | 279 | # apache-airflow-providers-apache-hive 280 | HIVE_QUEUE_PRIORITIES 281 | closest_ds_partition() - | ^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^ AIR302 282 | max_partition() 283 | HiveCliHook() | = help: Install `apache-airflow-provider-apache-hive>=5.1.0` and use `airflow.providers.apache.hive.macros.hive.closest_ds_partition` instead. -AIR303.py:282:1: AIR303 `airflow.macros.hive.max_partition` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:282:1: AIR302 `airflow.macros.hive.max_partition` is moved into `apache-hive` provider in Airflow 3.0; | 280 | HIVE_QUEUE_PRIORITIES 281 | closest_ds_partition() 282 | max_partition() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 283 | HiveCliHook() 284 | HiveMetastoreHook() | = help: Install `apache-airflow-provider-apache-hive>=5.1.0` and use `airflow.providers.apache.hive.macros.hive.max_partition` instead. -AIR303.py:283:1: AIR303 `airflow.hooks.hive_hooks.HiveCliHook` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:283:1: AIR302 `airflow.hooks.hive_hooks.HiveCliHook` is moved into `apache-hive` provider in Airflow 3.0; | 281 | closest_ds_partition() 282 | max_partition() 283 | HiveCliHook() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 284 | HiveMetastoreHook() 285 | HiveOperator() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HiveCliHook` instead. -AIR303.py:284:1: AIR303 `airflow.hooks.hive_hooks.HiveMetastoreHook` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:284:1: AIR302 `airflow.hooks.hive_hooks.HiveMetastoreHook` is moved into `apache-hive` provider in Airflow 3.0; | 282 | max_partition() 283 | HiveCliHook() 284 | HiveMetastoreHook() - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 285 | HiveOperator() 286 | HivePartitionSensor() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HiveMetastoreHook` instead. -AIR303.py:285:1: AIR303 `airflow.operators.hive_operator.HiveOperator` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:285:1: AIR302 `airflow.operators.hive_operator.HiveOperator` is moved into `apache-hive` provider in Airflow 3.0; | 283 | HiveCliHook() 284 | HiveMetastoreHook() 285 | HiveOperator() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 286 | HivePartitionSensor() 287 | HiveServer2Hook() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.operators.hive.HiveOperator` instead. -AIR303.py:286:1: AIR303 `airflow.sensors.hive_partition_sensor.HivePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:286:1: AIR302 `airflow.sensors.hive_partition_sensor.HivePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0; | 284 | HiveMetastoreHook() 285 | HiveOperator() 286 | HivePartitionSensor() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 287 | HiveServer2Hook() 288 | HiveStatsCollectionOperator() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.sensors.hive_partition.HivePartitionSensor` instead. -AIR303.py:287:1: AIR303 `airflow.hooks.hive_hooks.HiveServer2Hook` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:287:1: AIR302 `airflow.hooks.hive_hooks.HiveServer2Hook` is moved into `apache-hive` provider in Airflow 3.0; | 285 | HiveOperator() 286 | HivePartitionSensor() 287 | HiveServer2Hook() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 288 | HiveStatsCollectionOperator() 289 | HiveToDruidOperator() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HiveServer2Hook` instead. -AIR303.py:288:1: AIR303 `airflow.operators.hive_stats_operator.HiveStatsCollectionOperator` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:288:1: AIR302 `airflow.operators.hive_stats_operator.HiveStatsCollectionOperator` is moved into `apache-hive` provider in Airflow 3.0; | 286 | HivePartitionSensor() 287 | HiveServer2Hook() 288 | HiveStatsCollectionOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 289 | HiveToDruidOperator() 290 | HiveToDruidTransfer() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.operators.hive_stats.HiveStatsCollectionOperator` instead. -AIR303.py:289:1: AIR303 `airflow.operators.hive_to_druid.HiveToDruidOperator` is moved into `apache-druid` provider in Airflow 3.0; +AIR302.py:289:1: AIR302 `airflow.operators.hive_to_druid.HiveToDruidOperator` is moved into `apache-druid` provider in Airflow 3.0; | 287 | HiveServer2Hook() 288 | HiveStatsCollectionOperator() 289 | HiveToDruidOperator() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 290 | HiveToDruidTransfer() 291 | HiveToSambaOperator() | = help: Install `apache-airflow-provider-apache-druid>=1.0.0` and use `airflow.providers.apache.druid.transfers.hive_to_druid.HiveToDruidOperator` instead. -AIR303.py:290:1: AIR303 `airflow.operators.hive_to_druid.HiveToDruidTransfer` is moved into `apache-druid` provider in Airflow 3.0; +AIR302.py:290:1: AIR302 `airflow.operators.hive_to_druid.HiveToDruidTransfer` is moved into `apache-druid` provider in Airflow 3.0; | 288 | HiveStatsCollectionOperator() 289 | HiveToDruidOperator() 290 | HiveToDruidTransfer() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 291 | HiveToSambaOperator() 292 | S3ToHiveOperator() | = help: Install `apache-airflow-provider-apache-druid>=1.0.0` and use `airflow.providers.apache.druid.transfers.hive_to_druid.HiveToDruidOperator` instead. -AIR303.py:291:1: AIR303 `airflow.operators.hive_to_samba_operator.HiveToSambaOperator` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:291:1: AIR302 `airflow.operators.hive_to_samba_operator.HiveToSambaOperator` is moved into `apache-hive` provider in Airflow 3.0; | 289 | HiveToDruidOperator() 290 | HiveToDruidTransfer() 291 | HiveToSambaOperator() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 292 | S3ToHiveOperator() 293 | S3ToHiveTransfer() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `HiveToSambaOperator` instead. -AIR303.py:292:1: AIR303 `airflow.operators.s3_to_hive_operator.S3ToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:292:1: AIR302 `airflow.operators.s3_to_hive_operator.S3ToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0; | 290 | HiveToDruidTransfer() 291 | HiveToSambaOperator() 292 | S3ToHiveOperator() - | ^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^ AIR302 293 | S3ToHiveTransfer() 294 | MetastorePartitionSensor() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.s3_to_hive.S3ToHiveOperator` instead. -AIR303.py:293:1: AIR303 `airflow.operators.s3_to_hive_operator.S3ToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:293:1: AIR302 `airflow.operators.s3_to_hive_operator.S3ToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0; | 291 | HiveToSambaOperator() 292 | S3ToHiveOperator() 293 | S3ToHiveTransfer() - | ^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^ AIR302 294 | MetastorePartitionSensor() 295 | NamedHivePartitionSensor() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.s3_to_hive.S3ToHiveOperator` instead. -AIR303.py:294:1: AIR303 `airflow.sensors.metastore_partition_sensor.MetastorePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:294:1: AIR302 `airflow.sensors.metastore_partition_sensor.MetastorePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0; | 292 | S3ToHiveOperator() 293 | S3ToHiveTransfer() 294 | MetastorePartitionSensor() - | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 295 | NamedHivePartitionSensor() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.sensors.metastore_partition.MetastorePartitionSensor` instead. -AIR303.py:295:1: AIR303 `airflow.sensors.named_hive_partition_sensor.NamedHivePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:295:1: AIR302 `airflow.sensors.named_hive_partition_sensor.NamedHivePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0; | 293 | S3ToHiveTransfer() 294 | MetastorePartitionSensor() 295 | NamedHivePartitionSensor() - | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 296 | 297 | # apache-airflow-providers-http | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.sensors.named_hive_partition.NamedHivePartitionSensor` instead. -AIR303.py:298:1: AIR303 `airflow.hooks.http_hook.HttpHook` is moved into `http` provider in Airflow 3.0; +AIR302.py:298:1: AIR302 `airflow.hooks.http_hook.HttpHook` is moved into `http` provider in Airflow 3.0; | 297 | # apache-airflow-providers-http 298 | HttpHook() - | ^^^^^^^^ AIR303 + | ^^^^^^^^ AIR302 299 | HttpSensor() 300 | SimpleHttpOperator() | = help: Install `apache-airflow-provider-http>=1.0.0` and use `airflow.providers.http.hooks.http.HttpHook` instead. -AIR303.py:299:1: AIR303 `airflow.sensors.http_sensor.HttpSensor` is moved into `http` provider in Airflow 3.0; +AIR302.py:299:1: AIR302 `airflow.sensors.http_sensor.HttpSensor` is moved into `http` provider in Airflow 3.0; | 297 | # apache-airflow-providers-http 298 | HttpHook() 299 | HttpSensor() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 300 | SimpleHttpOperator() | = help: Install `apache-airflow-provider-http>=1.0.0` and use `airflow.providers.http.sensors.http.HttpSensor` instead. -AIR303.py:300:1: AIR303 `airflow.operators.http_operator.SimpleHttpOperator` is moved into `http` provider in Airflow 3.0; +AIR302.py:300:1: AIR302 `airflow.operators.http_operator.SimpleHttpOperator` is moved into `http` provider in Airflow 3.0; | 298 | HttpHook() 299 | HttpSensor() 300 | SimpleHttpOperator() - | ^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^ AIR302 301 | 302 | # apache-airflow-providers-jdbc | = help: Install `apache-airflow-provider-http>=1.0.0` and use `airflow.providers.http.operators.http.SimpleHttpOperator` instead. -AIR303.py:303:1: AIR303 `airflow.hooks.jdbc_hook.jaydebeapi` is moved into `jdbc` provider in Airflow 3.0; +AIR302.py:303:1: AIR302 `airflow.hooks.jdbc_hook.jaydebeapi` is moved into `jdbc` provider in Airflow 3.0; | 302 | # apache-airflow-providers-jdbc 303 | jaydebeapi - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 304 | JdbcHook() 305 | JdbcOperator() | = help: Install `apache-airflow-provider-jdbc>=1.0.0` and use `airflow.providers.jdbc.hooks.jdbc.jaydebeapi` instead. -AIR303.py:304:1: AIR303 `airflow.hooks.jdbc_hook.JdbcHook` is moved into `jdbc` provider in Airflow 3.0; +AIR302.py:304:1: AIR302 `airflow.hooks.jdbc_hook.JdbcHook` is moved into `jdbc` provider in Airflow 3.0; | 302 | # apache-airflow-providers-jdbc 303 | jaydebeapi 304 | JdbcHook() - | ^^^^^^^^ AIR303 + | ^^^^^^^^ AIR302 305 | JdbcOperator() | = help: Install `apache-airflow-provider-jdbc>=1.0.0` and use `airflow.providers.jdbc.hooks.jdbc.JdbcHook` instead. -AIR303.py:305:1: AIR303 `airflow.operators.jdbc_operator.JdbcOperator` is moved into `jdbc` provider in Airflow 3.0; +AIR302.py:305:1: AIR302 `airflow.operators.jdbc_operator.JdbcOperator` is moved into `jdbc` provider in Airflow 3.0; | 303 | jaydebeapi 304 | JdbcHook() 305 | JdbcOperator() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 306 | 307 | # apache-airflow-providers-fab | = help: Install `apache-airflow-provider-jdbc>=1.0.0` and use `airflow.providers.jdbc.operators.jdbc.JdbcOperator` instead. -AIR303.py:308:1: AIR303 Import path `airflow.api.auth.backend.basic_auth` is moved into `fab` provider in Airflow 3.0; +AIR302.py:308:1: AIR302 Import path `airflow.api.auth.backend.basic_auth` is moved into `fab` provider in Airflow 3.0; | 307 | # apache-airflow-providers-fab 308 | basic_auth, kerberos_auth - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 309 | auth_current_user 310 | backend_kerberos_auth | = help: Install `apache-airflow-provider-fab>=1.0.0` and import from `airflow.providers.fab.auth_manager.api.auth.backend.basic_auth` instead. -AIR303.py:308:13: AIR303 Import path `airflow.api.auth.backend.kerberos_auth` is moved into `fab` provider in Airflow 3.0; +AIR302.py:308:13: AIR302 Import path `airflow.api.auth.backend.kerberos_auth` is moved into `fab` provider in Airflow 3.0; | 307 | # apache-airflow-providers-fab 308 | basic_auth, kerberos_auth - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 309 | auth_current_user 310 | backend_kerberos_auth | = help: Install `apache-airflow-provider-fab>=1.0.0` and import from `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth` instead. -AIR303.py:309:1: AIR303 Import path `airflow.api.auth.backend.basic_auth` is moved into `fab` provider in Airflow 3.0; +AIR302.py:309:1: AIR302 Import path `airflow.api.auth.backend.basic_auth` is moved into `fab` provider in Airflow 3.0; | 307 | # apache-airflow-providers-fab 308 | basic_auth, kerberos_auth 309 | auth_current_user - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 310 | backend_kerberos_auth 311 | fab_override | = help: Install `apache-airflow-provider-fab>=1.0.0` and import from `airflow.providers.fab.auth_manager.api.auth.backend.basic_auth` instead. -AIR303.py:310:1: AIR303 Import path `airflow.auth_manager.api.auth.backend.kerberos_auth` is moved into `fab` provider in Airflow 3.0; +AIR302.py:310:1: AIR302 Import path `airflow.auth_manager.api.auth.backend.kerberos_auth` is moved into `fab` provider in Airflow 3.0; | 308 | basic_auth, kerberos_auth 309 | auth_current_user 310 | backend_kerberos_auth - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 311 | fab_override 312 | FabAuthManager() | = help: Install `apache-airflow-provider-fab>=1.0.0` and import from `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth` instead. -AIR303.py:311:1: AIR303 Import path `airflow.auth.managers.fab.security_manager.override` is moved into `fab` provider in Airflow 3.0; +AIR302.py:311:1: AIR302 Import path `airflow.auth.managers.fab.security_manager.override` is moved into `fab` provider in Airflow 3.0; | 309 | auth_current_user 310 | backend_kerberos_auth 311 | fab_override - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 312 | FabAuthManager() 313 | FabAirflowSecurityManagerOverride() | = help: Install `apache-airflow-provider-fab>=1.0.0` and import from `airflow.providers.fab.auth_manager.security_manager.override` instead. -AIR303.py:312:1: AIR303 `airflow.auth.managers.fab.fab_auth_manager.FabAuthManager` is moved into `fab` provider in Airflow 3.0; +AIR302.py:312:1: AIR302 `airflow.auth.managers.fab.fab_auth_manager.FabAuthManager` is moved into `fab` provider in Airflow 3.0; | 310 | backend_kerberos_auth 311 | fab_override 312 | FabAuthManager() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 313 | FabAirflowSecurityManagerOverride() | = help: Install `apache-airflow-provider-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.security_manager.FabAuthManager` instead. -AIR303.py:313:1: AIR303 `airflow.www.security.FabAirflowSecurityManagerOverride` is moved into `fab` provider in Airflow 3.0; +AIR302.py:313:1: AIR302 `airflow.www.security.FabAirflowSecurityManagerOverride` is moved into `fab` provider in Airflow 3.0; | 311 | fab_override 312 | FabAuthManager() 313 | FabAirflowSecurityManagerOverride() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 314 | 315 | # apache-airflow-providers-cncf-kubernetes | = help: Install `apache-airflow-provider-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride` instead. -AIR303.py:316:1: AIR303 `airflow.executors.kubernetes_executor_types.ALL_NAMESPACES` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:316:1: AIR302 `airflow.executors.kubernetes_executor_types.ALL_NAMESPACES` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 315 | # apache-airflow-providers-cncf-kubernetes 316 | ALL_NAMESPACES - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 317 | POD_EXECUTOR_DONE_KEY 318 | _disable_verify_ssl() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types.ALL_NAMESPACES` instead. -AIR303.py:317:1: AIR303 `airflow.executors.kubernetes_executor_types.POD_EXECUTOR_DONE_KEY` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:317:1: AIR302 `airflow.executors.kubernetes_executor_types.POD_EXECUTOR_DONE_KEY` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 315 | # apache-airflow-providers-cncf-kubernetes 316 | ALL_NAMESPACES 317 | POD_EXECUTOR_DONE_KEY - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 318 | _disable_verify_ssl() 319 | _enable_tcp_keepalive() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types.POD_EXECUTOR_DONE_KEY` instead. -AIR303.py:318:1: AIR303 `airflow.kubernetes.kube_client._disable_verify_ssl` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:318:1: AIR302 `airflow.kubernetes.kube_client._disable_verify_ssl` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 316 | ALL_NAMESPACES 317 | POD_EXECUTOR_DONE_KEY 318 | _disable_verify_ssl() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 319 | _enable_tcp_keepalive() 320 | append_to_pod() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.kubernetes.airflow.providers.cncf.kubernetes.kube_client._disable_verify_ssl` instead. -AIR303.py:319:1: AIR303 `airflow.kubernetes.kube_client._enable_tcp_keepalive` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:319:1: AIR302 `airflow.kubernetes.kube_client._enable_tcp_keepalive` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 317 | POD_EXECUTOR_DONE_KEY 318 | _disable_verify_ssl() 319 | _enable_tcp_keepalive() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 320 | append_to_pod() 321 | annotations_for_logging_task_metadata() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.kubernetes.airflow.providers.cncf.kubernetes.kube_client._enable_tcp_keepalive` instead. -AIR303.py:320:1: AIR303 `airflow.kubernetes.k8s_model.append_to_pod` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:320:1: AIR302 `airflow.kubernetes.k8s_model.append_to_pod` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 318 | _disable_verify_ssl() 319 | _enable_tcp_keepalive() 320 | append_to_pod() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 321 | annotations_for_logging_task_metadata() 322 | annotations_to_key() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.k8s_model.append_to_pod` instead. -AIR303.py:321:1: AIR303 `airflow.kubernetes.kubernetes_helper_functions.annotations_for_logging_task_metadata` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:321:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.annotations_for_logging_task_metadata` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 319 | _enable_tcp_keepalive() 320 | append_to_pod() 321 | annotations_for_logging_task_metadata() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 322 | annotations_to_key() 323 | create_pod_id() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.annotations_for_logging_task_metadata` instead. -AIR303.py:322:1: AIR303 `airflow.kubernetes.kubernetes_helper_functions.annotations_to_key` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:322:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.annotations_to_key` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 320 | append_to_pod() 321 | annotations_for_logging_task_metadata() 322 | annotations_to_key() - | ^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^ AIR302 323 | create_pod_id() 324 | datetime_to_label_safe_datestring() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.annotations_to_key` instead. -AIR303.py:323:1: AIR303 `airflow.kubernetes.kubernetes_helper_functions.create_pod_id` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:323:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.create_pod_id` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 321 | annotations_for_logging_task_metadata() 322 | annotations_to_key() 323 | create_pod_id() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 324 | datetime_to_label_safe_datestring() 325 | extend_object_field() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.create_pod_id` instead. -AIR303.py:324:1: AIR303 `airflow.kubernetes.pod_generator.datetime_to_label_safe_datestring` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:324:1: AIR302 `airflow.kubernetes.pod_generator.datetime_to_label_safe_datestring` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 322 | annotations_to_key() 323 | create_pod_id() 324 | datetime_to_label_safe_datestring() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 325 | extend_object_field() 326 | get_logs_task_metadata() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.datetime_to_label_safe_datestring` instead. -AIR303.py:325:1: AIR303 `airflow.kubernetes.pod_generator.extend_object_field` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:325:1: AIR302 `airflow.kubernetes.pod_generator.extend_object_field` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 323 | create_pod_id() 324 | datetime_to_label_safe_datestring() 325 | extend_object_field() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 326 | get_logs_task_metadata() 327 | label_safe_datestring_to_datetime() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.kubernetes.airflow.providers.cncf.kubernetes.pod_generator.extend_object_field` instead. -AIR303.py:326:1: AIR303 `airflow.kubernetes.kubernetes_helper_functions.get_logs_task_metadata` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:326:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.get_logs_task_metadata` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 324 | datetime_to_label_safe_datestring() 325 | extend_object_field() 326 | get_logs_task_metadata() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 327 | label_safe_datestring_to_datetime() 328 | merge_objects() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.get_logs_task_metadata` instead. -AIR303.py:327:1: AIR303 `airflow.kubernetes.pod_generator.label_safe_datestring_to_datetime` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:327:1: AIR302 `airflow.kubernetes.pod_generator.label_safe_datestring_to_datetime` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 325 | extend_object_field() 326 | get_logs_task_metadata() 327 | label_safe_datestring_to_datetime() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 328 | merge_objects() 329 | Port() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.label_safe_datestring_to_datetime` instead. -AIR303.py:328:1: AIR303 `airflow.kubernetes.pod_generator.merge_objects` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:328:1: AIR302 `airflow.kubernetes.pod_generator.merge_objects` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 326 | get_logs_task_metadata() 327 | label_safe_datestring_to_datetime() 328 | merge_objects() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 329 | Port() 330 | Resources() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.merge_objects` instead. -AIR303.py:329:1: AIR303 `airflow.kubernetes.pod.Port` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:329:1: AIR302 `airflow.kubernetes.pod.Port` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 327 | label_safe_datestring_to_datetime() 328 | merge_objects() 329 | Port() - | ^^^^ AIR303 + | ^^^^ AIR302 330 | Resources() 331 | PodRuntimeInfoEnv() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1ContainerPort` instead. -AIR303.py:330:1: AIR303 `airflow.kubernetes.pod.Resources` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:330:1: AIR302 `airflow.kubernetes.pod.Resources` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 328 | merge_objects() 329 | Port() 330 | Resources() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 331 | PodRuntimeInfoEnv() 332 | PodGeneratorDeprecated() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1ResourceRequirements` instead. -AIR303.py:331:1: AIR303 `airflow.kubernetes.pod_runtime_info_env.PodRuntimeInfoEnv` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:331:1: AIR302 `airflow.kubernetes.pod_runtime_info_env.PodRuntimeInfoEnv` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 329 | Port() 330 | Resources() 331 | PodRuntimeInfoEnv() - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 332 | PodGeneratorDeprecated() 333 | Volume() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1EnvVar` instead. -AIR303.py:332:1: AIR303 `airflow.kubernetes.pod_generator.PodGeneratorDeprecated` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:332:1: AIR302 `airflow.kubernetes.pod_generator.PodGeneratorDeprecated` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 330 | Resources() 331 | PodRuntimeInfoEnv() 332 | PodGeneratorDeprecated() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 333 | Volume() 334 | VolumeMount() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.PodGenerator` instead. -AIR303.py:333:1: AIR303 `airflow.kubernetes.volume.Volume` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:333:1: AIR302 `airflow.kubernetes.volume.Volume` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 331 | PodRuntimeInfoEnv() 332 | PodGeneratorDeprecated() 333 | Volume() - | ^^^^^^ AIR303 + | ^^^^^^ AIR302 334 | VolumeMount() 335 | Secret() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1Volume` instead. -AIR303.py:334:1: AIR303 `airflow.kubernetes.volume_mount.VolumeMount` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:334:1: AIR302 `airflow.kubernetes.volume_mount.VolumeMount` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 332 | PodGeneratorDeprecated() 333 | Volume() 334 | VolumeMount() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 335 | Secret() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1VolumeMount` instead. -AIR303.py:335:1: AIR303 `airflow.kubernetes.secret.Secret` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:335:1: AIR302 `airflow.kubernetes.secret.Secret` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 333 | Volume() 334 | VolumeMount() 335 | Secret() - | ^^^^^^ AIR303 + | ^^^^^^ AIR302 336 | 337 | add_pod_suffix() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.secret.Secret` instead. -AIR303.py:337:1: AIR303 `airflow.kubernetes.kubernetes_helper_functions.add_pod_suffix` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:337:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.add_pod_suffix` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 335 | Secret() 336 | 337 | add_pod_suffix() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 338 | add_pod_suffix2() 339 | get_kube_client() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.add_pod_suffix` instead. -AIR303.py:338:1: AIR303 `airflow.kubernetes.pod_generator.add_pod_suffix` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:338:1: AIR302 `airflow.kubernetes.pod_generator.add_pod_suffix` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 337 | add_pod_suffix() 338 | add_pod_suffix2() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 339 | get_kube_client() 340 | get_kube_client2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.add_pod_suffix` instead. -AIR303.py:339:1: AIR303 `airflow.kubernetes.kube_client.get_kube_client` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:339:1: AIR302 `airflow.kubernetes.kube_client.get_kube_client` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 337 | add_pod_suffix() 338 | add_pod_suffix2() 339 | get_kube_client() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 340 | get_kube_client2() 341 | make_safe_label_value() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.kubernetes.airflow.providers.cncf.kubernetes.kube_client.get_kube_client` instead. -AIR303.py:340:1: AIR303 `airflow.kubernetes.pod_launcher_deprecated.get_kube_client` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:340:1: AIR302 `airflow.kubernetes.pod_launcher_deprecated.get_kube_client` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 338 | add_pod_suffix2() 339 | get_kube_client() 340 | get_kube_client2() - | ^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^ AIR302 341 | make_safe_label_value() 342 | make_safe_label_value2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kube_client.get_kube_client` instead. -AIR303.py:341:1: AIR303 `airflow.kubernetes.pod_generator.make_safe_label_value` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:341:1: AIR302 `airflow.kubernetes.pod_generator.make_safe_label_value` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 339 | get_kube_client() 340 | get_kube_client2() 341 | make_safe_label_value() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 342 | make_safe_label_value2() 343 | rand_str() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.make_safe_label_value` instead. -AIR303.py:342:1: AIR303 `airflow.kubernetes.pod_generator_deprecated.make_safe_label_value` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:342:1: AIR302 `airflow.kubernetes.pod_generator_deprecated.make_safe_label_value` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 340 | get_kube_client2() 341 | make_safe_label_value() 342 | make_safe_label_value2() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 343 | rand_str() 344 | rand_str2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator_deprecated.make_safe_label_value` instead. -AIR303.py:343:1: AIR303 `airflow.kubernetes.kubernetes_helper_functions.rand_str` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:343:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.rand_str` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 341 | make_safe_label_value() 342 | make_safe_label_value2() 343 | rand_str() - | ^^^^^^^^ AIR303 + | ^^^^^^^^ AIR302 344 | rand_str2() 345 | K8SModel() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.rand_str` instead. -AIR303.py:344:1: AIR303 `airflow.kubernetes.pod_generator.rand_str` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:344:1: AIR302 `airflow.kubernetes.pod_generator.rand_str` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 342 | make_safe_label_value2() 343 | rand_str() 344 | rand_str2() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 345 | K8SModel() 346 | K8SModel2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.rand_str` instead. -AIR303.py:345:1: AIR303 `airflow.kubernetes.k8s_model.K8SModel` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:345:1: AIR302 `airflow.kubernetes.k8s_model.K8SModel` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 343 | rand_str() 344 | rand_str2() 345 | K8SModel() - | ^^^^^^^^ AIR303 + | ^^^^^^^^ AIR302 346 | K8SModel2() 347 | PodLauncher() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.k8s_model.K8SModel` instead. -AIR303.py:347:1: AIR303 `airflow.kubernetes.pod_launcher.PodLauncher` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:347:1: AIR302 `airflow.kubernetes.pod_launcher.PodLauncher` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 345 | K8SModel() 346 | K8SModel2() 347 | PodLauncher() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 348 | PodLauncher2() 349 | PodStatus() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_launcher.PodLauncher` instead. -AIR303.py:348:1: AIR303 `airflow.kubernetes.pod_launcher_deprecated.PodLauncher` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:348:1: AIR302 `airflow.kubernetes.pod_launcher_deprecated.PodLauncher` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 346 | K8SModel2() 347 | PodLauncher() 348 | PodLauncher2() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 349 | PodStatus() 350 | PodStatus2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_launcher_deprecated.PodLauncher` instead. -AIR303.py:349:1: AIR303 `airflow.kubernetes.pod_launcher.PodStatus` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:349:1: AIR302 `airflow.kubernetes.pod_launcher.PodStatus` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 347 | PodLauncher() 348 | PodLauncher2() 349 | PodStatus() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 350 | PodStatus2() 351 | PodDefaults() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_launcher.PodStatus` instead. -AIR303.py:350:1: AIR303 `airflow.kubernetes.pod_launcher_deprecated.PodStatus` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:350:1: AIR302 `airflow.kubernetes.pod_launcher_deprecated.PodStatus` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 348 | PodLauncher2() 349 | PodStatus() 350 | PodStatus2() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 351 | PodDefaults() 352 | PodDefaults2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_launcher_deprecated.PodStatus` instead. -AIR303.py:351:1: AIR303 `airflow.kubernetes.pod_generator.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:351:1: AIR302 `airflow.kubernetes.pod_generator.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 349 | PodStatus() 350 | PodStatus2() 351 | PodDefaults() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 352 | PodDefaults2() 353 | PodDefaults3() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodDefaults` instead. -AIR303.py:352:1: AIR303 `airflow.kubernetes.pod_launcher_deprecated.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:352:1: AIR302 `airflow.kubernetes.pod_launcher_deprecated.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 350 | PodStatus2() 351 | PodDefaults() 352 | PodDefaults2() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 353 | PodDefaults3() 354 | PodGenerator() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodDefaults` instead. -AIR303.py:353:1: AIR303 `airflow.kubernetes.pod_generator_deprecated.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:353:1: AIR302 `airflow.kubernetes.pod_generator_deprecated.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 351 | PodDefaults() 352 | PodDefaults2() 353 | PodDefaults3() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 354 | PodGenerator() 355 | PodGenerator2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodDefaults` instead. -AIR303.py:354:1: AIR303 `airflow.kubernetes.pod_generator.PodGenerator` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:354:1: AIR302 `airflow.kubernetes.pod_generator.PodGenerator` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 352 | PodDefaults2() 353 | PodDefaults3() 354 | PodGenerator() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 355 | PodGenerator2() | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.PodGenerator` instead. -AIR303.py:355:1: AIR303 `airflow.kubernetes.pod_generator_deprecated.PodGenerator` is moved into `cncf-kubernetes` provider in Airflow 3.0; +AIR302.py:355:1: AIR302 `airflow.kubernetes.pod_generator_deprecated.PodGenerator` is moved into `cncf-kubernetes` provider in Airflow 3.0; | 353 | PodDefaults3() 354 | PodGenerator() 355 | PodGenerator2() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 | = help: Install `apache-airflow-provider-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodGenerator` instead. -AIR303.py:359:1: AIR303 `airflow.hooks.mssql_hook.MsSqlHook` is moved into `microsoft-mssql` provider in Airflow 3.0; +AIR302.py:359:1: AIR302 `airflow.hooks.mssql_hook.MsSqlHook` is moved into `microsoft-mssql` provider in Airflow 3.0; | 358 | # apache-airflow-providers-microsoft-mssql 359 | MsSqlHook() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 360 | MsSqlOperator() 361 | MsSqlToHiveOperator() | = help: Install `apache-airflow-provider-microsoft-mssql>=1.0.0` and use `airflow.providers.microsoft.mssql.hooks.mssql.MsSqlHook` instead. -AIR303.py:360:1: AIR303 `airflow.operators.mssql_operator.MsSqlOperator` is moved into `microsoft-mssql` provider in Airflow 3.0; +AIR302.py:360:1: AIR302 `airflow.operators.mssql_operator.MsSqlOperator` is moved into `microsoft-mssql` provider in Airflow 3.0; | 358 | # apache-airflow-providers-microsoft-mssql 359 | MsSqlHook() 360 | MsSqlOperator() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 361 | MsSqlToHiveOperator() 362 | MsSqlToHiveTransfer() | = help: Install `apache-airflow-provider-microsoft-mssql>=1.0.0` and use `airflow.providers.microsoft.mssql.operators.mssql.MsSqlOperator` instead. -AIR303.py:361:1: AIR303 `airflow.operators.mssql_to_hive.MsSqlToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:361:1: AIR302 `airflow.operators.mssql_to_hive.MsSqlToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0; | 359 | MsSqlHook() 360 | MsSqlOperator() 361 | MsSqlToHiveOperator() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 362 | MsSqlToHiveTransfer() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mssql_to_hive.MsSqlToHiveOperator` instead. -AIR303.py:362:1: AIR303 `airflow.operators.mssql_to_hive.MsSqlToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:362:1: AIR302 `airflow.operators.mssql_to_hive.MsSqlToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0; | 360 | MsSqlOperator() 361 | MsSqlToHiveOperator() 362 | MsSqlToHiveTransfer() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 363 | 364 | # apache-airflow-providers-mysql | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mssql_to_hive.MsSqlToHiveOperator` instead. -AIR303.py:365:1: AIR303 `airflow.operators.hive_to_mysql.HiveToMySqlOperator` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:365:1: AIR302 `airflow.operators.hive_to_mysql.HiveToMySqlOperator` is moved into `apache-hive` provider in Airflow 3.0; | 364 | # apache-airflow-providers-mysql 365 | HiveToMySqlOperator() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 366 | HiveToMySqlTransfer() 367 | MySqlHook() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.hive_to_mysql.HiveToMySqlOperator` instead. -AIR303.py:366:1: AIR303 `airflow.operators.hive_to_mysql.HiveToMySqlTransfer` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:366:1: AIR302 `airflow.operators.hive_to_mysql.HiveToMySqlTransfer` is moved into `apache-hive` provider in Airflow 3.0; | 364 | # apache-airflow-providers-mysql 365 | HiveToMySqlOperator() 366 | HiveToMySqlTransfer() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 367 | MySqlHook() 368 | MySqlOperator() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.hive_to_mysql.HiveToMySqlOperator` instead. -AIR303.py:367:1: AIR303 `airflow.hooks.mysql_hook.MySqlHook` is moved into `mysql` provider in Airflow 3.0; +AIR302.py:367:1: AIR302 `airflow.hooks.mysql_hook.MySqlHook` is moved into `mysql` provider in Airflow 3.0; | 365 | HiveToMySqlOperator() 366 | HiveToMySqlTransfer() 367 | MySqlHook() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 368 | MySqlOperator() 369 | MySqlToHiveOperator() | = help: Install `apache-airflow-provider-mysql>=1.0.0` and use `airflow.providers.mysql.hooks.mysql.MySqlHook` instead. -AIR303.py:368:1: AIR303 `airflow.operators.mysql_operator.MySqlOperator` is moved into `mysql` provider in Airflow 3.0; +AIR302.py:368:1: AIR302 `airflow.operators.mysql_operator.MySqlOperator` is moved into `mysql` provider in Airflow 3.0; | 366 | HiveToMySqlTransfer() 367 | MySqlHook() 368 | MySqlOperator() - | ^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^ AIR302 369 | MySqlToHiveOperator() 370 | MySqlToHiveTransfer() | = help: Install `apache-airflow-provider-mysql>=1.0.0` and use `airflow.providers.mysql.operators.mysql.MySqlOperator` instead. -AIR303.py:369:1: AIR303 `airflow.operators.mysql_to_hive.MySqlToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:369:1: AIR302 `airflow.operators.mysql_to_hive.MySqlToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0; | 367 | MySqlHook() 368 | MySqlOperator() 369 | MySqlToHiveOperator() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 370 | MySqlToHiveTransfer() 371 | PrestoToMySqlOperator() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mysql_to_hive.MySqlToHiveOperator` instead. -AIR303.py:370:1: AIR303 `airflow.operators.mysql_to_hive.MySqlToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0; +AIR302.py:370:1: AIR302 `airflow.operators.mysql_to_hive.MySqlToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0; | 368 | MySqlOperator() 369 | MySqlToHiveOperator() 370 | MySqlToHiveTransfer() - | ^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^ AIR302 371 | PrestoToMySqlOperator() 372 | PrestoToMySqlTransfer() | = help: Install `apache-airflow-provider-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mysql_to_hive.MySqlToHiveOperator` instead. -AIR303.py:371:1: AIR303 `airflow.operators.presto_to_mysql.PrestoToMySqlOperator` is moved into `mysql` provider in Airflow 3.0; +AIR302.py:371:1: AIR302 `airflow.operators.presto_to_mysql.PrestoToMySqlOperator` is moved into `mysql` provider in Airflow 3.0; | 369 | MySqlToHiveOperator() 370 | MySqlToHiveTransfer() 371 | PrestoToMySqlOperator() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 372 | PrestoToMySqlTransfer() | = help: Install `apache-airflow-provider-mysql>=1.0.0` and use `airflow.providers.mysql.transfers.presto_to_mysql.PrestoToMySqlOperator` instead. -AIR303.py:372:1: AIR303 `airflow.operators.presto_to_mysql.PrestoToMySqlTransfer` is moved into `mysql` provider in Airflow 3.0; +AIR302.py:372:1: AIR302 `airflow.operators.presto_to_mysql.PrestoToMySqlTransfer` is moved into `mysql` provider in Airflow 3.0; | 370 | MySqlToHiveTransfer() 371 | PrestoToMySqlOperator() 372 | PrestoToMySqlTransfer() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 373 | 374 | # apache-airflow-providers-oracle | = help: Install `apache-airflow-provider-mysql>=1.0.0` and use `airflow.providers.mysql.transfers.presto_to_mysql.PrestoToMySqlOperator` instead. -AIR303.py:375:1: AIR303 `airflow.hooks.oracle_hook.OracleHook` is moved into `oracle` provider in Airflow 3.0; +AIR302.py:375:1: AIR302 `airflow.hooks.oracle_hook.OracleHook` is moved into `oracle` provider in Airflow 3.0; | 374 | # apache-airflow-providers-oracle 375 | OracleHook() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 376 | OracleOperator() | = help: Install `apache-airflow-provider-oracle>=1.0.0` and use `airflow.providers.oracle.hooks.oracle.OracleHook` instead. -AIR303.py:376:1: AIR303 `airflow.operators.oracle_operator.OracleOperator` is moved into `oracle` provider in Airflow 3.0; +AIR302.py:376:1: AIR302 `airflow.operators.oracle_operator.OracleOperator` is moved into `oracle` provider in Airflow 3.0; | 374 | # apache-airflow-providers-oracle 375 | OracleHook() 376 | OracleOperator() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 377 | 378 | # apache-airflow-providers-papermill | = help: Install `apache-airflow-provider-oracle>=1.0.0` and use `airflow.providers.oracle.operators.oracle.OracleOperator` instead. -AIR303.py:379:1: AIR303 `airflow.operators.papermill_operator.PapermillOperator` is moved into `papermill` provider in Airflow 3.0; +AIR302.py:379:1: AIR302 `airflow.operators.papermill_operator.PapermillOperator` is moved into `papermill` provider in Airflow 3.0; | 378 | # apache-airflow-providers-papermill 379 | PapermillOperator() - | ^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^ AIR302 380 | 381 | # apache-airflow-providers-apache-pig | = help: Install `apache-airflow-provider-papermill>=1.0.0` and use `airflow.providers.papermill.operators.papermill.PapermillOperator` instead. -AIR303.py:382:1: AIR303 `airflow.hooks.pig_hook.PigCliHook` is moved into `apache-pig` provider in Airflow 3.0; +AIR302.py:382:1: AIR302 `airflow.hooks.pig_hook.PigCliHook` is moved into `apache-pig` provider in Airflow 3.0; | 381 | # apache-airflow-providers-apache-pig 382 | PigCliHook() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 383 | PigOperator() | = help: Install `apache-airflow-provider-apache-pig>=1.0.0` and use `airflow.providers.apache.pig.hooks.pig.PigCliHook` instead. -AIR303.py:383:1: AIR303 `airflow.operators.pig_operator.PigOperator` is moved into `apache-pig` provider in Airflow 3.0; +AIR302.py:383:1: AIR302 `airflow.operators.pig_operator.PigOperator` is moved into `apache-pig` provider in Airflow 3.0; | 381 | # apache-airflow-providers-apache-pig 382 | PigCliHook() 383 | PigOperator() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 384 | 385 | # apache-airflow-providers-postgres | = help: Install `apache-airflow-provider-apache-pig>=1.0.0` and use `airflow.providers.apache.pig.operators.pig.PigOperator` instead. -AIR303.py:386:1: AIR303 `airflow.operators.postgres_operator.Mapping` is moved into `postgres` provider in Airflow 3.0; +AIR302.py:386:1: AIR302 `airflow.operators.postgres_operator.Mapping` is moved into `postgres` provider in Airflow 3.0; | 385 | # apache-airflow-providers-postgres 386 | Mapping - | ^^^^^^^ AIR303 + | ^^^^^^^ AIR302 387 | PostgresHook() 388 | PostgresOperator() | = help: Install `apache-airflow-provider-postgres>=1.0.0` and use `airflow.providers.postgres.operators.postgres.Mapping` instead. -AIR303.py:387:1: AIR303 `airflow.hooks.postgres_hook.PostgresHook` is moved into `postgres` provider in Airflow 3.0; +AIR302.py:387:1: AIR302 `airflow.hooks.postgres_hook.PostgresHook` is moved into `postgres` provider in Airflow 3.0; | 385 | # apache-airflow-providers-postgres 386 | Mapping 387 | PostgresHook() - | ^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^ AIR302 388 | PostgresOperator() | = help: Install `apache-airflow-provider-postgres>=1.0.0` and use `airflow.providers.postgres.hooks.postgres.PostgresHook` instead. -AIR303.py:388:1: AIR303 `airflow.operators.postgres_operator.PostgresOperator` is moved into `postgres` provider in Airflow 3.0; +AIR302.py:388:1: AIR302 `airflow.operators.postgres_operator.PostgresOperator` is moved into `postgres` provider in Airflow 3.0; | 386 | Mapping 387 | PostgresHook() 388 | PostgresOperator() - | ^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^ AIR302 389 | 390 | # apache-airflow-providers-presto | = help: Install `apache-airflow-provider-postgres>=1.0.0` and use `airflow.providers.postgres.operators.postgres.PostgresOperator` instead. -AIR303.py:391:1: AIR303 `airflow.hooks.presto_hook.PrestoHook` is moved into `presto` provider in Airflow 3.0; +AIR302.py:391:1: AIR302 `airflow.hooks.presto_hook.PrestoHook` is moved into `presto` provider in Airflow 3.0; | 390 | # apache-airflow-providers-presto 391 | PrestoHook() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 392 | 393 | # apache-airflow-providers-samba | = help: Install `apache-airflow-provider-presto>=1.0.0` and use `airflow.providers.presto.hooks.presto.PrestoHook` instead. -AIR303.py:394:1: AIR303 `airflow.hooks.samba_hook.SambaHook` is moved into `samba` provider in Airflow 3.0; +AIR302.py:394:1: AIR302 `airflow.hooks.samba_hook.SambaHook` is moved into `samba` provider in Airflow 3.0; | 393 | # apache-airflow-providers-samba 394 | SambaHook() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 395 | 396 | # apache-airflow-providers-slack | = help: Install `apache-airflow-provider-samba>=1.0.0` and use `airflow.providers.samba.hooks.samba.SambaHook` instead. -AIR303.py:397:1: AIR303 `airflow.hooks.slack_hook.SlackHook` is moved into `slack` provider in Airflow 3.0; +AIR302.py:397:1: AIR302 `airflow.hooks.slack_hook.SlackHook` is moved into `slack` provider in Airflow 3.0; | 396 | # apache-airflow-providers-slack 397 | SlackHook() - | ^^^^^^^^^ AIR303 + | ^^^^^^^^^ AIR302 398 | SlackAPIOperator() 399 | SlackAPIPostOperator() | = help: Install `apache-airflow-provider-slack>=1.0.0` and use `airflow.providers.slack.hooks.slack.SlackHook` instead. -AIR303.py:398:1: AIR303 `airflow.operators.slack_operator.SlackAPIOperator` is moved into `slack` provider in Airflow 3.0; +AIR302.py:398:1: AIR302 `airflow.operators.slack_operator.SlackAPIOperator` is moved into `slack` provider in Airflow 3.0; | 396 | # apache-airflow-providers-slack 397 | SlackHook() 398 | SlackAPIOperator() - | ^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^ AIR302 399 | SlackAPIPostOperator() | = help: Install `apache-airflow-provider-slack>=1.0.0` and use `airflow.providers.slack.operators.slack.SlackAPIOperator` instead. -AIR303.py:399:1: AIR303 `airflow.operators.slack_operator.SlackAPIPostOperator` is moved into `slack` provider in Airflow 3.0; +AIR302.py:399:1: AIR302 `airflow.operators.slack_operator.SlackAPIPostOperator` is moved into `slack` provider in Airflow 3.0; | 397 | SlackHook() 398 | SlackAPIOperator() 399 | SlackAPIPostOperator() - | ^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^ AIR302 400 | 401 | # apache-airflow-providers-sqlite | = help: Install `apache-airflow-provider-slack>=1.0.0` and use `airflow.providers.slack.operators.slack.SlackAPIPostOperator` instead. -AIR303.py:402:1: AIR303 `airflow.hooks.sqlite_hook.SqliteHook` is moved into `sqlite` provider in Airflow 3.0; +AIR302.py:402:1: AIR302 `airflow.hooks.sqlite_hook.SqliteHook` is moved into `sqlite` provider in Airflow 3.0; | 401 | # apache-airflow-providers-sqlite 402 | SqliteHook() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 403 | SqliteOperator() | = help: Install `apache-airflow-provider-sqlite>=1.0.0` and use `airflow.providers.sqlite.hooks.sqlite.SqliteHook` instead. -AIR303.py:403:1: AIR303 `airflow.operators.sqlite_operator.SqliteOperator` is moved into `sqlite` provider in Airflow 3.0; +AIR302.py:403:1: AIR302 `airflow.operators.sqlite_operator.SqliteOperator` is moved into `sqlite` provider in Airflow 3.0; | 401 | # apache-airflow-providers-sqlite 402 | SqliteHook() 403 | SqliteOperator() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 404 | 405 | # apache-airflow-providers-zendesk | = help: Install `apache-airflow-provider-sqlite>=1.0.0` and use `airflow.providers.sqlite.operators.sqlite.SqliteOperator` instead. -AIR303.py:406:1: AIR303 `airflow.hooks.zendesk_hook.ZendeskHook` is moved into `zendesk` provider in Airflow 3.0; +AIR302.py:406:1: AIR302 `airflow.hooks.zendesk_hook.ZendeskHook` is moved into `zendesk` provider in Airflow 3.0; | 405 | # apache-airflow-providers-zendesk 406 | ZendeskHook() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 407 | 408 | # apache-airflow-providers-standard | = help: Install `apache-airflow-provider-zendesk>=1.0.0` and use `airflow.providers.zendesk.hooks.zendesk.ZendeskHook` instead. -AIR303.py:409:1: AIR303 `airflow.sensors.filesystem.FileSensor` is moved into `standard` provider in Airflow 3.0; +AIR302.py:409:1: AIR302 `airflow.sensors.filesystem.FileSensor` is moved into `standard` provider in Airflow 3.0; | 408 | # apache-airflow-providers-standard 409 | FileSensor() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 410 | TriggerDagRunOperator() 411 | ExternalTaskMarker(), ExternalTaskSensor() | = help: Install `apache-airflow-provider-standard>=0.0.2` and use `airflow.providers.standard.sensors.filesystem.FileSensor` instead. -AIR303.py:410:1: AIR303 `airflow.operators.trigger_dagrun.TriggerDagRunOperator` is moved into `standard` provider in Airflow 3.0; +AIR302.py:410:1: AIR302 `airflow.operators.trigger_dagrun.TriggerDagRunOperator` is moved into `standard` provider in Airflow 3.0; | 408 | # apache-airflow-providers-standard 409 | FileSensor() 410 | TriggerDagRunOperator() - | ^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^ AIR302 411 | ExternalTaskMarker(), ExternalTaskSensor() 412 | BranchDateTimeOperator() | = help: Install `apache-airflow-provider-standard>=0.0.2` and use `airflow.providers.standard.operators.trigger_dagrun.TriggerDagRunOperator` instead. -AIR303.py:411:1: AIR303 `airflow.sensors.external_task.ExternalTaskMarker` is moved into `standard` provider in Airflow 3.0; +AIR302.py:411:1: AIR302 `airflow.sensors.external_task.ExternalTaskMarker` is moved into `standard` provider in Airflow 3.0; | 409 | FileSensor() 410 | TriggerDagRunOperator() 411 | ExternalTaskMarker(), ExternalTaskSensor() - | ^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^ AIR302 412 | BranchDateTimeOperator() 413 | BranchDayOfWeekOperator() | = help: Install `apache-airflow-provider-standard>=0.0.3` and use `airflow.providers.standard.sensors.external_task.ExternalTaskMarker` instead. -AIR303.py:411:23: AIR303 `airflow.sensors.external_task.ExternalTaskSensor` is moved into `standard` provider in Airflow 3.0; +AIR302.py:411:23: AIR302 `airflow.sensors.external_task.ExternalTaskSensor` is moved into `standard` provider in Airflow 3.0; | 409 | FileSensor() 410 | TriggerDagRunOperator() 411 | ExternalTaskMarker(), ExternalTaskSensor() - | ^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^ AIR302 412 | BranchDateTimeOperator() 413 | BranchDayOfWeekOperator() | = help: Install `apache-airflow-provider-standard>=0.0.3` and use `airflow.providers.standard.sensors.external_task.ExternalTaskSensor` instead. -AIR303.py:412:1: AIR303 Import path `airflow.operators.datetime` is moved into `standard` provider in Airflow 3.0; +AIR302.py:412:1: AIR302 Import path `airflow.operators.datetime` is moved into `standard` provider in Airflow 3.0; | 410 | TriggerDagRunOperator() 411 | ExternalTaskMarker(), ExternalTaskSensor() 412 | BranchDateTimeOperator() - | ^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 413 | BranchDayOfWeekOperator() 414 | DateTimeSensor() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.time.operators.datetime` instead. -AIR303.py:413:1: AIR303 Import path `airflow.operators.weekday` is moved into `standard` provider in Airflow 3.0; +AIR302.py:413:1: AIR302 Import path `airflow.operators.weekday` is moved into `standard` provider in Airflow 3.0; | 411 | ExternalTaskMarker(), ExternalTaskSensor() 412 | BranchDateTimeOperator() 413 | BranchDayOfWeekOperator() - | ^^^^^^^^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 414 | DateTimeSensor() 415 | TimeSensor() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.time.operators.weekday` instead. -AIR303.py:414:1: AIR303 Import path `airflow.sensors.date_time` is moved into `standard` provider in Airflow 3.0; +AIR302.py:414:1: AIR302 Import path `airflow.sensors.date_time` is moved into `standard` provider in Airflow 3.0; | 412 | BranchDateTimeOperator() 413 | BranchDayOfWeekOperator() 414 | DateTimeSensor() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 415 | TimeSensor() 416 | TimeDeltaSensor() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.time.sensors.date_time` instead. -AIR303.py:415:1: AIR303 Import path `airflow.sensors.time_sensor` is moved into `standard` provider in Airflow 3.0; +AIR302.py:415:1: AIR302 Import path `airflow.sensors.time_sensor` is moved into `standard` provider in Airflow 3.0; | 413 | BranchDayOfWeekOperator() 414 | DateTimeSensor() 415 | TimeSensor() - | ^^^^^^^^^^ AIR303 + | ^^^^^^^^^^ AIR302 416 | TimeDeltaSensor() 417 | DayOfWeekSensor() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.time.sensors.time` instead. -AIR303.py:416:1: AIR303 Import path `airflow.sensors.time_delta` is moved into `standard` provider in Airflow 3.0; +AIR302.py:416:1: AIR302 Import path `airflow.sensors.time_delta` is moved into `standard` provider in Airflow 3.0; | 414 | DateTimeSensor() 415 | TimeSensor() 416 | TimeDeltaSensor() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 417 | DayOfWeekSensor() 418 | FSHook() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.time.sensors.time_delta` instead. -AIR303.py:417:1: AIR303 Import path `airflow.sensors.weekday` is moved into `standard` provider in Airflow 3.0; +AIR302.py:417:1: AIR302 Import path `airflow.sensors.weekday` is moved into `standard` provider in Airflow 3.0; | 415 | TimeSensor() 416 | TimeDeltaSensor() 417 | DayOfWeekSensor() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 418 | FSHook() 419 | PackageIndexHook() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.time.sensors.weekday` instead. -AIR303.py:418:1: AIR303 Import path `airflow.hooks.filesystem` is moved into `standard` provider in Airflow 3.0; +AIR302.py:418:1: AIR302 Import path `airflow.hooks.filesystem` is moved into `standard` provider in Airflow 3.0; | 416 | TimeDeltaSensor() 417 | DayOfWeekSensor() 418 | FSHook() - | ^^^^^^ AIR303 + | ^^^^^^ AIR302 419 | PackageIndexHook() 420 | SubprocessHook() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.hooks.filesystem` instead. -AIR303.py:419:1: AIR303 Import path `airflow.hooks.package_index` is moved into `standard` provider in Airflow 3.0; +AIR302.py:419:1: AIR302 Import path `airflow.hooks.package_index` is moved into `standard` provider in Airflow 3.0; | 417 | DayOfWeekSensor() 418 | FSHook() 419 | PackageIndexHook() - | ^^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^^ AIR302 420 | SubprocessHook() 421 | WorkflowTrigger() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.hooks.package_index` instead. -AIR303.py:420:1: AIR303 Import path `airflow.hooks.subprocess` is moved into `standard` provider in Airflow 3.0; +AIR302.py:420:1: AIR302 Import path `airflow.hooks.subprocess` is moved into `standard` provider in Airflow 3.0; | 418 | FSHook() 419 | PackageIndexHook() 420 | SubprocessHook() - | ^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^ AIR302 421 | WorkflowTrigger() 422 | FileTrigger() | = help: Install `apache-airflow-provider-standard>=0.0.1` and import from `airflow.providers.standard.hooks.subprocess` instead. -AIR303.py:421:1: AIR303 Import path `airflow.triggers.external_task` is moved into `standard` provider in Airflow 3.0; +AIR302.py:421:1: AIR302 Import path `airflow.triggers.external_task` is moved into `standard` provider in Airflow 3.0; | 419 | PackageIndexHook() 420 | SubprocessHook() 421 | WorkflowTrigger() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 422 | FileTrigger() 423 | DateTimeTrigger() | = help: Install `apache-airflow-provider-standard>=0.0.3` and import from `airflow.providers.standard.triggers.external_task` instead. -AIR303.py:422:1: AIR303 Import path `airflow.triggers.file` is moved into `standard` provider in Airflow 3.0; +AIR302.py:422:1: AIR302 Import path `airflow.triggers.file` is moved into `standard` provider in Airflow 3.0; | 420 | SubprocessHook() 421 | WorkflowTrigger() 422 | FileTrigger() - | ^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^ AIR302 423 | DateTimeTrigger() | = help: Install `apache-airflow-provider-standard>=0.0.3` and import from `airflow.providers.standard.triggers.file` instead. -AIR303.py:423:1: AIR303 Import path `airflow.triggers.temporal` is moved into `standard` provider in Airflow 3.0; +AIR302.py:423:1: AIR302 Import path `airflow.triggers.temporal` is moved into `standard` provider in Airflow 3.0; | 421 | WorkflowTrigger() 422 | FileTrigger() 423 | DateTimeTrigger() - | ^^^^^^^^^^^^^^^ AIR303 + | ^^^^^^^^^^^^^^^ AIR302 | = help: Install `apache-airflow-provider-standard>=0.0.3` and import from `airflow.providers.standard.triggers.temporal` instead. diff --git a/ruff.schema.json b/ruff.schema.json index 3c8ec9614b..f5a2bc1e5a 100644 --- a/ruff.schema.json +++ b/ruff.schema.json @@ -2946,8 +2946,8 @@ "AIR002", "AIR3", "AIR30", + "AIR301", "AIR302", - "AIR303", "ALL", "ANN", "ANN0",