From c238f02c557a03ff8b3c2d5549786153acb6e57c Mon Sep 17 00:00:00 2001 From: Wei Lee Date: Tue, 4 Feb 2025 17:25:55 +0800 Subject: [PATCH] refactor(AIR302): group similiar conditions --- .../test/fixtures/airflow/AIR302_names.py | 15 +- .../src/rules/airflow/rules/removal_in_3.rs | 37 +- ...irflow__tests__AIR302_AIR302_names.py.snap | 1142 ++++++++--------- 3 files changed, 588 insertions(+), 606 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names.py b/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names.py index c8baadf7f7e85..8265e1f05d62d 100644 --- a/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names.py +++ b/crates/ruff_linter/resources/test/fixtures/airflow/AIR302_names.py @@ -75,15 +75,10 @@ from airflow.security.permissions import RESOURCE_DATASET from airflow.sensors.base_sensor_operator import BaseSensorOperator from airflow.sensors.date_time_sensor import DateTimeSensor -from airflow.sensors.external_task import ( - ExternalTaskSensorLink as ExternalTaskSensorLinkFromExternalTask, -) from airflow.sensors.external_task_sensor import ( ExternalTaskMarker, ExternalTaskSensor, -) -from airflow.sensors.external_task_sensor import ( - ExternalTaskSensorLink as ExternalTaskSensorLinkFromExternalTaskSensor, + ExternalTaskSensorLink, ) from airflow.sensors.time_delta_sensor import TimeDeltaSensor from airflow.timetables.datasets import DatasetOrTimeSchedule @@ -249,11 +244,13 @@ DateTimeSensor() # airflow.sensors.external_task -ExternalTaskSensorLinkFromExternalTask() - -# airflow.sensors.external_task_sensor +ExternalTaskSensorLink() ExternalTaskMarker() ExternalTaskSensor() + +# airflow.sensors.external_task_sensor +ExternalTaskMarkerFromExternalTaskSensor() +ExternalTaskSensorFromExternalTaskSensor() ExternalTaskSensorLinkFromExternalTaskSensor() # airflow.sensors.time_delta_sensor 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 38c91beb00b79..70ffce94c9c4c 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 @@ -690,16 +690,7 @@ fn check_name(checker: &mut Checker, expr: &Expr, range: TextRange) { ["airflow", "operators", "branch_operator", "BaseBranchOperator"] => { Replacement::Name("airflow.operators.branch.BaseBranchOperator") } - ["airflow", "operators", " dummy", "EmptyOperator"] => { - Replacement::Name("airflow.operators.empty.EmptyOperator") - } - ["airflow", "operators", "dummy", "DummyOperator"] => { - Replacement::Name("airflow.operators.empty.EmptyOperator") - } - ["airflow", "operators", "dummy_operator", "EmptyOperator"] => { - Replacement::Name("airflow.operators.empty.EmptyOperator") - } - ["airflow", "operators", "dummy_operator", "DummyOperator"] => { + ["airflow", "operators", "dummy" | "dummy_operator", "EmptyOperator" | "DummyOperator"] => { Replacement::Name("airflow.operators.empty.EmptyOperator") } ["airflow", "operators", "email_operator", "EmailOperator"] => { @@ -728,24 +719,21 @@ fn check_name(checker: &mut Checker, expr: &Expr, range: TextRange) { } // airflow.sensors - ["airflow", "sensors", "external_task", "ExternalTaskSensorLink"] => { - Replacement::Name("airflow.sensors.external_task.ExternalDagLink") - } ["airflow", "sensors", "base_sensor_operator", "BaseSensorOperator"] => { Replacement::Name("airflow.sensors.base.BaseSensorOperator") } ["airflow", "sensors", "date_time_sensor", "DateTimeSensor"] => { Replacement::Name("airflow.sensors.date_time.DateTimeSensor") } - ["airflow", "sensors", "external_task_sensor", "ExternalTaskMarker"] => { + ["airflow", "sensors", "external_task" | "external_task_sensor", "ExternalTaskMarker"] => { Replacement::Name("airflow.sensors.external_task.ExternalTaskMarker") } - ["airflow", "sensors", "external_task_sensor", "ExternalTaskSensor"] => { - Replacement::Name("airflow.sensors.external_task.ExternalTaskSensor") - } - ["airflow", "sensors", "external_task_sensor", "ExternalTaskSensorLink"] => { + ["airflow", "sensors", "external_task" | "external_task_sensor", "ExternalTaskSensorLink"] => { Replacement::Name("airflow.sensors.external_task.ExternalDagLink") } + ["airflow", "sensors", "external_task" | "external_task_sensor", "ExternalTaskSensor"] => { + Replacement::Name("airflow.sensors.external_task.ExternalTaskSensor") + } ["airflow", "sensors", "time_delta_sensor", "TimeDeltaSensor"] => { Replacement::Name("airflow.sensors.time_delta.TimeDeltaSensor") } @@ -764,10 +752,9 @@ fn check_name(checker: &mut Checker, expr: &Expr, range: TextRange) { ["airflow", "utils", "dates", "days_ago"] => { Replacement::Name("pendulum.today('UTC').add(days=-N, ...)") } - ["airflow", "utils", "dates", "parse_execution_date"] => Replacement::None, - ["airflow", "utils", "dates", "round_time"] => Replacement::None, - ["airflow", "utils", "dates", "scale_time_units"] => Replacement::None, - ["airflow", "utils", "dates", "infer_time_unit"] => Replacement::None, + ["airflow", "utils", "dates", "parse_execution_date" | "round_time" | "scale_time_units" | "infer_time_unit"] => { + Replacement::None + } // airflow.utils.file ["airflow", "utils", "file", "TemporaryDirectory"] => Replacement::None, @@ -784,12 +771,10 @@ fn check_name(checker: &mut Checker, expr: &Expr, range: TextRange) { } // airflow.utils.state - ["airflow", "utils", "state", "SHUTDOWN"] => Replacement::None, - ["airflow", "utils", "state", "terminating_states"] => Replacement::None, + ["airflow", "utils", "state", "SHUTDOWN" | "terminating_states"] => Replacement::None, // airflow.utils.trigger_rule - ["airflow", "utils", "trigger_rule", "TriggerRule", "DUMMY"] => Replacement::None, - ["airflow", "utils", "trigger_rule", "TriggerRule", "NONE_FAILED_OR_SKIPPED"] => { + ["airflow", "utils", "trigger_rule", "TriggerRule", "DUMMY" | "NONE_FAILED_OR_SKIPPED"] => { Replacement::None } 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__AIR302_AIR302_names.py.snap index d163824fbbe77..a520150e00479 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__AIR302_AIR302_names.py.snap @@ -2,1121 +2,1121 @@ source: crates/ruff_linter/src/rules/airflow/mod.rs snapshot_kind: text --- -AIR302_names.py:113:1: AIR302 `airflow.PY36` is removed in Airflow 3.0 +AIR302_names.py:108:1: AIR302 `airflow.PY36` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 | ^^^^ AIR302 -114 | DatasetFromRoot() +109 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:113:7: AIR302 `airflow.PY37` is removed in Airflow 3.0 +AIR302_names.py:108:7: AIR302 `airflow.PY37` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 | ^^^^ AIR302 -114 | DatasetFromRoot() +109 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:113:13: AIR302 `airflow.PY38` is removed in Airflow 3.0 +AIR302_names.py:108:13: AIR302 `airflow.PY38` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 | ^^^^ AIR302 -114 | DatasetFromRoot() +109 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:113:19: AIR302 `airflow.PY39` is removed in Airflow 3.0 +AIR302_names.py:108:19: AIR302 `airflow.PY39` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 | ^^^^ AIR302 -114 | DatasetFromRoot() +109 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:113:25: AIR302 `airflow.PY310` is removed in Airflow 3.0 +AIR302_names.py:108:25: AIR302 `airflow.PY310` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 | ^^^^^ AIR302 -114 | DatasetFromRoot() +109 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:113:32: AIR302 `airflow.PY311` is removed in Airflow 3.0 +AIR302_names.py:108:32: AIR302 `airflow.PY311` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 | ^^^^^ AIR302 -114 | DatasetFromRoot() +109 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:113:39: AIR302 `airflow.PY312` is removed in Airflow 3.0 +AIR302_names.py:108:39: AIR302 `airflow.PY312` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 | ^^^^^ AIR302 -114 | DatasetFromRoot() +109 | DatasetFromRoot() | = help: Use `sys.version_info` instead -AIR302_names.py:114:1: AIR302 `airflow.Dataset` is removed in Airflow 3.0 +AIR302_names.py:109:1: AIR302 `airflow.Dataset` is removed in Airflow 3.0 | -112 | # airflow root -113 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 -114 | DatasetFromRoot() +107 | # airflow root +108 | PY36, PY37, PY38, PY39, PY310, PY311, PY312 +109 | DatasetFromRoot() | ^^^^^^^^^^^^^^^ AIR302 -115 | -116 | dataset_from_root = DatasetFromRoot() +110 | +111 | dataset_from_root = DatasetFromRoot() | = help: Use `airflow.sdk.definitions.asset.Asset` instead -AIR302_names.py:116:21: AIR302 `airflow.Dataset` is removed in Airflow 3.0 +AIR302_names.py:111:21: AIR302 `airflow.Dataset` is removed in Airflow 3.0 | -114 | DatasetFromRoot() -115 | -116 | dataset_from_root = DatasetFromRoot() +109 | DatasetFromRoot() +110 | +111 | dataset_from_root = DatasetFromRoot() | ^^^^^^^^^^^^^^^ AIR302 -117 | dataset_from_root.iter_datasets() -118 | dataset_from_root.iter_dataset_aliases() +112 | dataset_from_root.iter_datasets() +113 | dataset_from_root.iter_dataset_aliases() | = help: Use `airflow.sdk.definitions.asset.Asset` instead -AIR302_names.py:117:19: AIR302 `iter_datasets` is removed in Airflow 3.0 +AIR302_names.py:112:19: AIR302 `iter_datasets` is removed in Airflow 3.0 | -116 | dataset_from_root = DatasetFromRoot() -117 | dataset_from_root.iter_datasets() +111 | dataset_from_root = DatasetFromRoot() +112 | dataset_from_root.iter_datasets() | ^^^^^^^^^^^^^ AIR302 -118 | dataset_from_root.iter_dataset_aliases() +113 | dataset_from_root.iter_dataset_aliases() | = help: Use `iter_assets` instead -AIR302_names.py:118:19: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 +AIR302_names.py:113:19: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 | -116 | dataset_from_root = DatasetFromRoot() -117 | dataset_from_root.iter_datasets() -118 | dataset_from_root.iter_dataset_aliases() +111 | dataset_from_root = DatasetFromRoot() +112 | dataset_from_root.iter_datasets() +113 | dataset_from_root.iter_dataset_aliases() | ^^^^^^^^^^^^^^^^^^^^ AIR302 -119 | -120 | # airflow.api_connexion.security +114 | +115 | # airflow.api_connexion.security | = help: Use `iter_asset_aliases` instead -AIR302_names.py:121:1: AIR302 `airflow.api_connexion.security.requires_access` is removed in Airflow 3.0 +AIR302_names.py:116:1: AIR302 `airflow.api_connexion.security.requires_access` is removed in Airflow 3.0 | -120 | # airflow.api_connexion.security -121 | requires_access, requires_access_dataset +115 | # airflow.api_connexion.security +116 | requires_access, requires_access_dataset | ^^^^^^^^^^^^^^^ AIR302 -122 | -123 | # airflow.auth.managers +117 | +118 | # airflow.auth.managers | = help: Use `airflow.api_connexion.security.requires_access_*` instead -AIR302_names.py:121:18: AIR302 `airflow.api_connexion.security.requires_access_dataset` is removed in Airflow 3.0 +AIR302_names.py:116:18: AIR302 `airflow.api_connexion.security.requires_access_dataset` is removed in Airflow 3.0 | -120 | # airflow.api_connexion.security -121 | requires_access, requires_access_dataset +115 | # airflow.api_connexion.security +116 | requires_access, requires_access_dataset | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -122 | -123 | # airflow.auth.managers +117 | +118 | # airflow.auth.managers | = help: Use `airflow.api_connexion.security.requires_access_asset` instead -AIR302_names.py:124:1: AIR302 `airflow.auth.managers.base_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 +AIR302_names.py:119:1: AIR302 `airflow.auth.managers.base_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 | -123 | # airflow.auth.managers -124 | is_authorized_dataset +118 | # airflow.auth.managers +119 | is_authorized_dataset | ^^^^^^^^^^^^^^^^^^^^^ AIR302 -125 | DatasetDetails() +120 | DatasetDetails() | = help: Use `airflow.auth.managers.base_auth_manager.is_authorized_asset` instead -AIR302_names.py:125:1: AIR302 `airflow.auth.managers.models.resource_details.DatasetDetails` is removed in Airflow 3.0 +AIR302_names.py:120:1: AIR302 `airflow.auth.managers.models.resource_details.DatasetDetails` is removed in Airflow 3.0 | -123 | # airflow.auth.managers -124 | is_authorized_dataset -125 | DatasetDetails() +118 | # airflow.auth.managers +119 | is_authorized_dataset +120 | DatasetDetails() | ^^^^^^^^^^^^^^ AIR302 -126 | -127 | # airflow.configuration +121 | +122 | # airflow.configuration | = help: Use `airflow.auth.managers.models.resource_details.AssetDetails` instead -AIR302_names.py:128:1: AIR302 `airflow.configuration.get` is removed in Airflow 3.0 +AIR302_names.py:123:1: AIR302 `airflow.configuration.get` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^ AIR302 | = help: Use `airflow.configuration.conf.get` instead -AIR302_names.py:128:6: AIR302 `airflow.configuration.getboolean` is removed in Airflow 3.0 +AIR302_names.py:123:6: AIR302 `airflow.configuration.getboolean` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^^^^^^^^ AIR302 | = help: Use `airflow.configuration.conf.getboolean` instead -AIR302_names.py:128:18: AIR302 `airflow.configuration.getfloat` is removed in Airflow 3.0 +AIR302_names.py:123:18: AIR302 `airflow.configuration.getfloat` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^^^^^^ AIR302 | = help: Use `airflow.configuration.conf.getfloat` instead -AIR302_names.py:128:28: AIR302 `airflow.configuration.getint` is removed in Airflow 3.0 +AIR302_names.py:123:28: AIR302 `airflow.configuration.getint` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^^^^ AIR302 | = help: Use `airflow.configuration.conf.getint` instead -AIR302_names.py:128:36: AIR302 `airflow.configuration.has_option` is removed in Airflow 3.0 +AIR302_names.py:123:36: AIR302 `airflow.configuration.has_option` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^^^^^^^^ AIR302 | = help: Use `airflow.configuration.conf.has_option` instead -AIR302_names.py:128:48: AIR302 `airflow.configuration.remove_option` is removed in Airflow 3.0 +AIR302_names.py:123:48: AIR302 `airflow.configuration.remove_option` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^^^^^^^^^^^ AIR302 | = help: Use `airflow.configuration.conf.remove_option` instead -AIR302_names.py:128:63: AIR302 `airflow.configuration.as_dict` is removed in Airflow 3.0 +AIR302_names.py:123:63: AIR302 `airflow.configuration.as_dict` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^^^^^ AIR302 | = help: Use `airflow.configuration.conf.as_dict` instead -AIR302_names.py:128:72: AIR302 `airflow.configuration.set` is removed in Airflow 3.0 +AIR302_names.py:123:72: AIR302 `airflow.configuration.set` is removed in Airflow 3.0 | -127 | # airflow.configuration -128 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set +122 | # airflow.configuration +123 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set | ^^^ AIR302 | = help: Use `airflow.configuration.conf.set` instead -AIR302_names.py:132:1: AIR302 `airflow.contrib.aws_athena_hook.AWSAthenaHook` is removed in Airflow 3.0; The whole `airflow.contrib` module has been removed. +AIR302_names.py:127:1: AIR302 `airflow.contrib.aws_athena_hook.AWSAthenaHook` is removed in Airflow 3.0; The whole `airflow.contrib` module has been removed. | -131 | # airflow.contrib.* -132 | AWSAthenaHook() +126 | # airflow.contrib.* +127 | AWSAthenaHook() | ^^^^^^^^^^^^^ AIR302 -133 | -134 | # airflow.datasets +128 | +129 | # airflow.datasets | -AIR302_names.py:135:1: AIR302 `airflow.datasets.Dataset` is removed in Airflow 3.0 +AIR302_names.py:130:1: AIR302 `airflow.datasets.Dataset` is removed in Airflow 3.0 | -134 | # airflow.datasets -135 | Dataset() +129 | # airflow.datasets +130 | Dataset() | ^^^^^^^ AIR302 -136 | DatasetAlias() -137 | DatasetAliasEvent() +131 | DatasetAlias() +132 | DatasetAliasEvent() | = help: Use `airflow.sdk.definitions.asset.Asset` instead -AIR302_names.py:136:1: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 +AIR302_names.py:131:1: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 | -134 | # airflow.datasets -135 | Dataset() -136 | DatasetAlias() +129 | # airflow.datasets +130 | Dataset() +131 | DatasetAlias() | ^^^^^^^^^^^^ AIR302 -137 | DatasetAliasEvent() -138 | DatasetAll() +132 | DatasetAliasEvent() +133 | DatasetAll() | = help: Use `airflow.sdk.definitions.asset.AssetAlias` instead -AIR302_names.py:137:1: AIR302 `airflow.datasets.DatasetAliasEvent` is removed in Airflow 3.0 +AIR302_names.py:132:1: AIR302 `airflow.datasets.DatasetAliasEvent` is removed in Airflow 3.0 | -135 | Dataset() -136 | DatasetAlias() -137 | DatasetAliasEvent() +130 | Dataset() +131 | DatasetAlias() +132 | DatasetAliasEvent() | ^^^^^^^^^^^^^^^^^ AIR302 -138 | DatasetAll() -139 | DatasetAny() +133 | DatasetAll() +134 | DatasetAny() | -AIR302_names.py:138:1: AIR302 `airflow.datasets.DatasetAll` is removed in Airflow 3.0 +AIR302_names.py:133:1: AIR302 `airflow.datasets.DatasetAll` is removed in Airflow 3.0 | -136 | DatasetAlias() -137 | DatasetAliasEvent() -138 | DatasetAll() +131 | DatasetAlias() +132 | DatasetAliasEvent() +133 | DatasetAll() | ^^^^^^^^^^ AIR302 -139 | DatasetAny() -140 | expand_alias_to_datasets +134 | DatasetAny() +135 | expand_alias_to_datasets | = help: Use `airflow.sdk.definitions.asset.AssetAll` instead -AIR302_names.py:139:1: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 +AIR302_names.py:134:1: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 | -137 | DatasetAliasEvent() -138 | DatasetAll() -139 | DatasetAny() +132 | DatasetAliasEvent() +133 | DatasetAll() +134 | DatasetAny() | ^^^^^^^^^^ AIR302 -140 | expand_alias_to_datasets -141 | Metadata() +135 | expand_alias_to_datasets +136 | Metadata() | = help: Use `airflow.sdk.definitions.asset.AssetAny` instead -AIR302_names.py:140:1: AIR302 `airflow.datasets.expand_alias_to_datasets` is removed in Airflow 3.0 +AIR302_names.py:135:1: AIR302 `airflow.datasets.expand_alias_to_datasets` is removed in Airflow 3.0 | -138 | DatasetAll() -139 | DatasetAny() -140 | expand_alias_to_datasets +133 | DatasetAll() +134 | DatasetAny() +135 | expand_alias_to_datasets | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -141 | Metadata() +136 | Metadata() | = help: Use `airflow.sdk.definitions.asset.expand_alias_to_assets` instead -AIR302_names.py:141:1: AIR302 `airflow.datasets.metadata.Metadata` is removed in Airflow 3.0 +AIR302_names.py:136:1: AIR302 `airflow.datasets.metadata.Metadata` is removed in Airflow 3.0 | -139 | DatasetAny() -140 | expand_alias_to_datasets -141 | Metadata() +134 | DatasetAny() +135 | expand_alias_to_datasets +136 | Metadata() | ^^^^^^^^ AIR302 -142 | -143 | dataset_to_test_method_call = Dataset() +137 | +138 | dataset_to_test_method_call = Dataset() | = help: Use `airflow.sdk.definitions.asset.metadata.Metadata` instead -AIR302_names.py:143:31: AIR302 `airflow.datasets.Dataset` is removed in Airflow 3.0 +AIR302_names.py:138:31: AIR302 `airflow.datasets.Dataset` is removed in Airflow 3.0 | -141 | Metadata() -142 | -143 | dataset_to_test_method_call = Dataset() +136 | Metadata() +137 | +138 | dataset_to_test_method_call = Dataset() | ^^^^^^^ AIR302 -144 | dataset_to_test_method_call.iter_datasets() -145 | dataset_to_test_method_call.iter_dataset_aliases() +139 | dataset_to_test_method_call.iter_datasets() +140 | dataset_to_test_method_call.iter_dataset_aliases() | = help: Use `airflow.sdk.definitions.asset.Asset` instead -AIR302_names.py:144:29: AIR302 `iter_datasets` is removed in Airflow 3.0 +AIR302_names.py:139:29: AIR302 `iter_datasets` is removed in Airflow 3.0 | -143 | dataset_to_test_method_call = Dataset() -144 | dataset_to_test_method_call.iter_datasets() +138 | dataset_to_test_method_call = Dataset() +139 | dataset_to_test_method_call.iter_datasets() | ^^^^^^^^^^^^^ AIR302 -145 | dataset_to_test_method_call.iter_dataset_aliases() +140 | dataset_to_test_method_call.iter_dataset_aliases() | = help: Use `iter_assets` instead -AIR302_names.py:145:29: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 +AIR302_names.py:140:29: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 | -143 | dataset_to_test_method_call = Dataset() -144 | dataset_to_test_method_call.iter_datasets() -145 | dataset_to_test_method_call.iter_dataset_aliases() +138 | dataset_to_test_method_call = Dataset() +139 | dataset_to_test_method_call.iter_datasets() +140 | dataset_to_test_method_call.iter_dataset_aliases() | ^^^^^^^^^^^^^^^^^^^^ AIR302 -146 | -147 | alias_to_test_method_call = DatasetAlias() +141 | +142 | alias_to_test_method_call = DatasetAlias() | = help: Use `iter_asset_aliases` instead -AIR302_names.py:147:29: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 +AIR302_names.py:142:29: AIR302 `airflow.datasets.DatasetAlias` is removed in Airflow 3.0 | -145 | dataset_to_test_method_call.iter_dataset_aliases() -146 | -147 | alias_to_test_method_call = DatasetAlias() +140 | dataset_to_test_method_call.iter_dataset_aliases() +141 | +142 | alias_to_test_method_call = DatasetAlias() | ^^^^^^^^^^^^ AIR302 -148 | alias_to_test_method_call.iter_datasets() -149 | alias_to_test_method_call.iter_dataset_aliases() +143 | alias_to_test_method_call.iter_datasets() +144 | alias_to_test_method_call.iter_dataset_aliases() | = help: Use `airflow.sdk.definitions.asset.AssetAlias` instead -AIR302_names.py:148:27: AIR302 `iter_datasets` is removed in Airflow 3.0 +AIR302_names.py:143:27: AIR302 `iter_datasets` is removed in Airflow 3.0 | -147 | alias_to_test_method_call = DatasetAlias() -148 | alias_to_test_method_call.iter_datasets() +142 | alias_to_test_method_call = DatasetAlias() +143 | alias_to_test_method_call.iter_datasets() | ^^^^^^^^^^^^^ AIR302 -149 | alias_to_test_method_call.iter_dataset_aliases() +144 | alias_to_test_method_call.iter_dataset_aliases() | = help: Use `iter_assets` instead -AIR302_names.py:149:27: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 +AIR302_names.py:144:27: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 | -147 | alias_to_test_method_call = DatasetAlias() -148 | alias_to_test_method_call.iter_datasets() -149 | alias_to_test_method_call.iter_dataset_aliases() +142 | alias_to_test_method_call = DatasetAlias() +143 | alias_to_test_method_call.iter_datasets() +144 | alias_to_test_method_call.iter_dataset_aliases() | ^^^^^^^^^^^^^^^^^^^^ AIR302 -150 | -151 | any_to_test_method_call = DatasetAny() +145 | +146 | any_to_test_method_call = DatasetAny() | = help: Use `iter_asset_aliases` instead -AIR302_names.py:151:27: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 +AIR302_names.py:146:27: AIR302 `airflow.datasets.DatasetAny` is removed in Airflow 3.0 | -149 | alias_to_test_method_call.iter_dataset_aliases() -150 | -151 | any_to_test_method_call = DatasetAny() +144 | alias_to_test_method_call.iter_dataset_aliases() +145 | +146 | any_to_test_method_call = DatasetAny() | ^^^^^^^^^^ AIR302 -152 | any_to_test_method_call.iter_datasets() -153 | any_to_test_method_call.iter_dataset_aliases() +147 | any_to_test_method_call.iter_datasets() +148 | any_to_test_method_call.iter_dataset_aliases() | = help: Use `airflow.sdk.definitions.asset.AssetAny` instead -AIR302_names.py:152:25: AIR302 `iter_datasets` is removed in Airflow 3.0 +AIR302_names.py:147:25: AIR302 `iter_datasets` is removed in Airflow 3.0 | -151 | any_to_test_method_call = DatasetAny() -152 | any_to_test_method_call.iter_datasets() +146 | any_to_test_method_call = DatasetAny() +147 | any_to_test_method_call.iter_datasets() | ^^^^^^^^^^^^^ AIR302 -153 | any_to_test_method_call.iter_dataset_aliases() +148 | any_to_test_method_call.iter_dataset_aliases() | = help: Use `iter_assets` instead -AIR302_names.py:153:25: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 +AIR302_names.py:148:25: AIR302 `iter_dataset_aliases` is removed in Airflow 3.0 | -151 | any_to_test_method_call = DatasetAny() -152 | any_to_test_method_call.iter_datasets() -153 | any_to_test_method_call.iter_dataset_aliases() +146 | any_to_test_method_call = DatasetAny() +147 | any_to_test_method_call.iter_datasets() +148 | any_to_test_method_call.iter_dataset_aliases() | ^^^^^^^^^^^^^^^^^^^^ AIR302 -154 | -155 | # airflow.datasets.manager +149 | +150 | # airflow.datasets.manager | = help: Use `iter_asset_aliases` instead -AIR302_names.py:156:19: AIR302 `airflow.datasets.manager.dataset_manager` is removed in Airflow 3.0 +AIR302_names.py:151:19: AIR302 `airflow.datasets.manager.dataset_manager` is removed in Airflow 3.0 | -155 | # airflow.datasets.manager -156 | DatasetManager(), dataset_manager, resolve_dataset_manager +150 | # airflow.datasets.manager +151 | DatasetManager(), dataset_manager, resolve_dataset_manager | ^^^^^^^^^^^^^^^ AIR302 -157 | -158 | # airflow.hooks +152 | +153 | # airflow.hooks | = help: Use `airflow.assets.manager` instead -AIR302_names.py:156:36: AIR302 `airflow.datasets.manager.resolve_dataset_manager` is removed in Airflow 3.0 +AIR302_names.py:151:36: AIR302 `airflow.datasets.manager.resolve_dataset_manager` is removed in Airflow 3.0 | -155 | # airflow.datasets.manager -156 | DatasetManager(), dataset_manager, resolve_dataset_manager +150 | # airflow.datasets.manager +151 | DatasetManager(), dataset_manager, resolve_dataset_manager | ^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -157 | -158 | # airflow.hooks +152 | +153 | # airflow.hooks | = help: Use `airflow.assets.resolve_asset_manager` instead -AIR302_names.py:159:1: AIR302 `airflow.hooks.base_hook.BaseHook` is removed in Airflow 3.0 +AIR302_names.py:154:1: AIR302 `airflow.hooks.base_hook.BaseHook` is removed in Airflow 3.0 | -158 | # airflow.hooks -159 | BaseHook() +153 | # airflow.hooks +154 | BaseHook() | ^^^^^^^^ AIR302 -160 | -161 | # airflow.lineage.hook +155 | +156 | # airflow.lineage.hook | = help: Use `airflow.hooks.base.BaseHook` instead -AIR302_names.py:162:1: AIR302 `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0 +AIR302_names.py:157:1: AIR302 `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0 | -161 | # airflow.lineage.hook -162 | DatasetLineageInfo() +156 | # airflow.lineage.hook +157 | DatasetLineageInfo() | ^^^^^^^^^^^^^^^^^^ AIR302 -163 | -164 | # airflow.listeners.spec.dataset +158 | +159 | # airflow.listeners.spec.dataset | = help: Use `airflow.lineage.hook.AssetLineageInfo` instead -AIR302_names.py:165:1: AIR302 `airflow.listeners.spec.dataset.on_dataset_changed` is removed in Airflow 3.0 +AIR302_names.py:160:1: AIR302 `airflow.listeners.spec.dataset.on_dataset_changed` is removed in Airflow 3.0 | -164 | # airflow.listeners.spec.dataset -165 | on_dataset_changed, on_dataset_created +159 | # airflow.listeners.spec.dataset +160 | on_dataset_changed, on_dataset_created | ^^^^^^^^^^^^^^^^^^ AIR302 -166 | -167 | # airflow.metrics.validators +161 | +162 | # airflow.metrics.validators | = help: Use `airflow.listeners.spec.asset.on_asset_changed` instead -AIR302_names.py:165:21: AIR302 `airflow.listeners.spec.dataset.on_dataset_created` is removed in Airflow 3.0 +AIR302_names.py:160:21: AIR302 `airflow.listeners.spec.dataset.on_dataset_created` is removed in Airflow 3.0 | -164 | # airflow.listeners.spec.dataset -165 | on_dataset_changed, on_dataset_created +159 | # airflow.listeners.spec.dataset +160 | on_dataset_changed, on_dataset_created | ^^^^^^^^^^^^^^^^^^ AIR302 -166 | -167 | # airflow.metrics.validators +161 | +162 | # airflow.metrics.validators | = help: Use `airflow.listeners.spec.asset.on_asset_created` instead -AIR302_names.py:168:1: AIR302 `airflow.metrics.validators.AllowListValidator` is removed in Airflow 3.0 +AIR302_names.py:163:1: AIR302 `airflow.metrics.validators.AllowListValidator` is removed in Airflow 3.0 | -167 | # airflow.metrics.validators -168 | AllowListValidator(), BlockListValidator() +162 | # airflow.metrics.validators +163 | AllowListValidator(), BlockListValidator() | ^^^^^^^^^^^^^^^^^^ AIR302 -169 | -170 | # airflow.operators.dummy_operator +164 | +165 | # airflow.operators.dummy_operator | = help: Use `airflow.metrics.validators.PatternAllowListValidator` instead -AIR302_names.py:168:23: AIR302 `airflow.metrics.validators.BlockListValidator` is removed in Airflow 3.0 +AIR302_names.py:163:23: AIR302 `airflow.metrics.validators.BlockListValidator` is removed in Airflow 3.0 | -167 | # airflow.metrics.validators -168 | AllowListValidator(), BlockListValidator() +162 | # airflow.metrics.validators +163 | AllowListValidator(), BlockListValidator() | ^^^^^^^^^^^^^^^^^^ AIR302 -169 | -170 | # airflow.operators.dummy_operator +164 | +165 | # airflow.operators.dummy_operator | = help: Use `airflow.metrics.validators.PatternBlockListValidator` instead -AIR302_names.py:171:16: AIR302 `airflow.operators.dummy_operator.EmptyOperator` is removed in Airflow 3.0 +AIR302_names.py:166:16: AIR302 `airflow.operators.dummy_operator.EmptyOperator` is removed in Airflow 3.0 | -170 | # airflow.operators.dummy_operator -171 | dummy_operator.EmptyOperator() +165 | # airflow.operators.dummy_operator +166 | dummy_operator.EmptyOperator() | ^^^^^^^^^^^^^ AIR302 -172 | dummy_operator.DummyOperator() +167 | dummy_operator.DummyOperator() | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_names.py:172:16: AIR302 `airflow.operators.dummy_operator.DummyOperator` is removed in Airflow 3.0 +AIR302_names.py:167:16: AIR302 `airflow.operators.dummy_operator.DummyOperator` is removed in Airflow 3.0 | -170 | # airflow.operators.dummy_operator -171 | dummy_operator.EmptyOperator() -172 | dummy_operator.DummyOperator() +165 | # airflow.operators.dummy_operator +166 | dummy_operator.EmptyOperator() +167 | dummy_operator.DummyOperator() | ^^^^^^^^^^^^^ AIR302 -173 | -174 | # airflow.operators.bash / airflow.operators.bash_operator +168 | +169 | # airflow.operators.bash / airflow.operators.bash_operator | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_names.py:175:1: AIR302 `airflow.operators.bash.BashOperator` is removed in Airflow 3.0 +AIR302_names.py:170:1: AIR302 `airflow.operators.bash.BashOperator` is removed in Airflow 3.0 | -174 | # airflow.operators.bash / airflow.operators.bash_operator -175 | BashOperator() +169 | # airflow.operators.bash / airflow.operators.bash_operator +170 | BashOperator() | ^^^^^^^^^^^^ AIR302 -176 | LegacyBashOperator() +171 | LegacyBashOperator() | = help: Use `airflow.providers.standard.operators.bash.BashOperator` instead -AIR302_names.py:176:1: AIR302 `airflow.operators.bash_operator.BashOperator` is removed in Airflow 3.0 +AIR302_names.py:171:1: AIR302 `airflow.operators.bash_operator.BashOperator` is removed in Airflow 3.0 | -174 | # airflow.operators.bash / airflow.operators.bash_operator -175 | BashOperator() -176 | LegacyBashOperator() +169 | # airflow.operators.bash / airflow.operators.bash_operator +170 | BashOperator() +171 | LegacyBashOperator() | ^^^^^^^^^^^^^^^^^^ AIR302 -177 | -178 | # airflow.operators.branch_operator +172 | +173 | # airflow.operators.branch_operator | = help: Use `airflow.providers.standard.operators.bash.BashOperator` instead -AIR302_names.py:179:1: AIR302 `airflow.operators.branch_operator.BaseBranchOperator` is removed in Airflow 3.0 +AIR302_names.py:174:1: AIR302 `airflow.operators.branch_operator.BaseBranchOperator` is removed in Airflow 3.0 | -178 | # airflow.operators.branch_operator -179 | BaseBranchOperator() +173 | # airflow.operators.branch_operator +174 | BaseBranchOperator() | ^^^^^^^^^^^^^^^^^^ AIR302 -180 | -181 | # airflow.operators.dagrun_operator +175 | +176 | # airflow.operators.dagrun_operator | = help: Use `airflow.operators.branch.BaseBranchOperator` instead -AIR302_names.py:182:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunLink` is removed in Airflow 3.0 +AIR302_names.py:177:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunLink` is removed in Airflow 3.0 | -181 | # airflow.operators.dagrun_operator -182 | TriggerDagRunLink() +176 | # airflow.operators.dagrun_operator +177 | TriggerDagRunLink() | ^^^^^^^^^^^^^^^^^ AIR302 -183 | TriggerDagRunOperator() +178 | TriggerDagRunOperator() | = help: Use `airflow.operators.trigger_dagrun.TriggerDagRunLink` instead -AIR302_names.py:183:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunOperator` is removed in Airflow 3.0 +AIR302_names.py:178:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunOperator` is removed in Airflow 3.0 | -181 | # airflow.operators.dagrun_operator -182 | TriggerDagRunLink() -183 | TriggerDagRunOperator() +176 | # airflow.operators.dagrun_operator +177 | TriggerDagRunLink() +178 | TriggerDagRunOperator() | ^^^^^^^^^^^^^^^^^^^^^ AIR302 -184 | -185 | # airflow.operators.dummy +179 | +180 | # airflow.operators.dummy | = help: Use `airflow.operators.trigger_dagrun.TriggerDagRunOperator` instead -AIR302_names.py:186:18: AIR302 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0 +AIR302_names.py:181:1: AIR302 `airflow.operators.dummy.EmptyOperator` is removed in Airflow 3.0 | -185 | # airflow.operators.dummy -186 | EmptyOperator(), DummyOperator() +180 | # airflow.operators.dummy +181 | EmptyOperator(), DummyOperator() + | ^^^^^^^^^^^^^ AIR302 +182 | +183 | # airflow.operators.email_operator + | + = help: Use `airflow.operators.empty.EmptyOperator` instead + +AIR302_names.py:181:18: AIR302 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0 + | +180 | # airflow.operators.dummy +181 | EmptyOperator(), DummyOperator() | ^^^^^^^^^^^^^ AIR302 -187 | -188 | # airflow.operators.email_operator +182 | +183 | # airflow.operators.email_operator | = help: Use `airflow.operators.empty.EmptyOperator` instead -AIR302_names.py:189:1: AIR302 `airflow.operators.email_operator.EmailOperator` is removed in Airflow 3.0 +AIR302_names.py:184:1: AIR302 `airflow.operators.email_operator.EmailOperator` is removed in Airflow 3.0 | -188 | # airflow.operators.email_operator -189 | EmailOperator() +183 | # airflow.operators.email_operator +184 | EmailOperator() | ^^^^^^^^^^^^^ AIR302 -190 | -191 | # airflow.operators.latest_only_operator +185 | +186 | # airflow.operators.latest_only_operator | = help: Use `airflow.operators.email.EmailOperator` instead -AIR302_names.py:192:1: AIR302 `airflow.operators.latest_only_operator.LatestOnlyOperator` is removed in Airflow 3.0 +AIR302_names.py:187:1: AIR302 `airflow.operators.latest_only_operator.LatestOnlyOperator` is removed in Airflow 3.0 | -191 | # airflow.operators.latest_only_operator -192 | LatestOnlyOperator() +186 | # airflow.operators.latest_only_operator +187 | LatestOnlyOperator() | ^^^^^^^^^^^^^^^^^^ AIR302 -193 | -194 | # airflow.operators.python_operator +188 | +189 | # airflow.operators.python_operator | = help: Use `airflow.operators.latest_only.LatestOnlyOperator` instead -AIR302_names.py:195:1: AIR302 `airflow.operators.python_operator.BranchPythonOperator` is removed in Airflow 3.0 +AIR302_names.py:190:1: AIR302 `airflow.operators.python_operator.BranchPythonOperator` is removed in Airflow 3.0 | -194 | # airflow.operators.python_operator -195 | BranchPythonOperator() +189 | # airflow.operators.python_operator +190 | BranchPythonOperator() | ^^^^^^^^^^^^^^^^^^^^ AIR302 -196 | PythonOperator() -197 | PythonVirtualenvOperator() +191 | PythonOperator() +192 | PythonVirtualenvOperator() | = help: Use `airflow.operators.python.BranchPythonOperator` instead -AIR302_names.py:196:1: AIR302 `airflow.operators.python_operator.PythonOperator` is removed in Airflow 3.0 +AIR302_names.py:191:1: AIR302 `airflow.operators.python_operator.PythonOperator` is removed in Airflow 3.0 | -194 | # airflow.operators.python_operator -195 | BranchPythonOperator() -196 | PythonOperator() +189 | # airflow.operators.python_operator +190 | BranchPythonOperator() +191 | PythonOperator() | ^^^^^^^^^^^^^^ AIR302 -197 | PythonVirtualenvOperator() -198 | ShortCircuitOperator() +192 | PythonVirtualenvOperator() +193 | ShortCircuitOperator() | = help: Use `airflow.operators.python.PythonOperator` instead -AIR302_names.py:197:1: AIR302 `airflow.operators.python_operator.PythonVirtualenvOperator` is removed in Airflow 3.0 +AIR302_names.py:192:1: AIR302 `airflow.operators.python_operator.PythonVirtualenvOperator` is removed in Airflow 3.0 | -195 | BranchPythonOperator() -196 | PythonOperator() -197 | PythonVirtualenvOperator() +190 | BranchPythonOperator() +191 | PythonOperator() +192 | PythonVirtualenvOperator() | ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -198 | ShortCircuitOperator() +193 | ShortCircuitOperator() | = help: Use `airflow.operators.python.PythonVirtualenvOperator` instead -AIR302_names.py:198:1: AIR302 `airflow.operators.python_operator.ShortCircuitOperator` is removed in Airflow 3.0 +AIR302_names.py:193:1: AIR302 `airflow.operators.python_operator.ShortCircuitOperator` is removed in Airflow 3.0 | -196 | PythonOperator() -197 | PythonVirtualenvOperator() -198 | ShortCircuitOperator() +191 | PythonOperator() +192 | PythonVirtualenvOperator() +193 | ShortCircuitOperator() | ^^^^^^^^^^^^^^^^^^^^ AIR302 -199 | -200 | # airflow.operators.subdag.* +194 | +195 | # airflow.operators.subdag.* | = help: Use `airflow.operators.python.ShortCircuitOperator` instead -AIR302_names.py:201:1: AIR302 `airflow.operators.subdag.SubDagOperator` is removed in Airflow 3.0; The whole `airflow.subdag` module has been removed. +AIR302_names.py:196:1: AIR302 `airflow.operators.subdag.SubDagOperator` is removed in Airflow 3.0; The whole `airflow.subdag` module has been removed. | -200 | # airflow.operators.subdag.* -201 | SubDagOperator() +195 | # airflow.operators.subdag.* +196 | SubDagOperator() | ^^^^^^^^^^^^^^ AIR302 -202 | -203 | # airflow.providers.amazon +197 | +198 | # airflow.providers.amazon | -AIR302_names.py:204:13: AIR302 `airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.DATASET` is removed in Airflow 3.0 +AIR302_names.py:199:13: AIR302 `airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.DATASET` is removed in Airflow 3.0 | -203 | # airflow.providers.amazon -204 | AvpEntities.DATASET +198 | # airflow.providers.amazon +199 | AvpEntities.DATASET | ^^^^^^^ AIR302 -205 | s3.create_dataset -206 | s3.convert_dataset_to_openlineage +200 | s3.create_dataset +201 | s3.convert_dataset_to_openlineage | = help: Use `airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.ASSET` instead -AIR302_names.py:205:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.create_dataset` is removed in Airflow 3.0 +AIR302_names.py:200:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.create_dataset` is removed in Airflow 3.0 | -203 | # airflow.providers.amazon -204 | AvpEntities.DATASET -205 | s3.create_dataset +198 | # airflow.providers.amazon +199 | AvpEntities.DATASET +200 | s3.create_dataset | ^^^^^^^^^^^^^^ AIR302 -206 | s3.convert_dataset_to_openlineage -207 | s3.sanitize_uri +201 | s3.convert_dataset_to_openlineage +202 | s3.sanitize_uri | = help: Use `airflow.providers.amazon.aws.assets.s3.create_asset` instead -AIR302_names.py:206:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage` is removed in Airflow 3.0 +AIR302_names.py:201:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage` is removed in Airflow 3.0 | -204 | AvpEntities.DATASET -205 | s3.create_dataset -206 | s3.convert_dataset_to_openlineage +199 | AvpEntities.DATASET +200 | s3.create_dataset +201 | s3.convert_dataset_to_openlineage | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -207 | s3.sanitize_uri +202 | s3.sanitize_uri | = help: Use `airflow.providers.amazon.aws.assets.s3.convert_asset_to_openlineage` instead -AIR302_names.py:207:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.sanitize_uri` is removed in Airflow 3.0 +AIR302_names.py:202:4: AIR302 `airflow.providers.amazon.aws.datasets.s3.sanitize_uri` is removed in Airflow 3.0 | -205 | s3.create_dataset -206 | s3.convert_dataset_to_openlineage -207 | s3.sanitize_uri +200 | s3.create_dataset +201 | s3.convert_dataset_to_openlineage +202 | s3.sanitize_uri | ^^^^^^^^^^^^ AIR302 -208 | -209 | # airflow.providers.common.io +203 | +204 | # airflow.providers.common.io | = help: Use `airflow.providers.amazon.aws.assets.s3.sanitize_uri` instead -AIR302_names.py:210:16: AIR302 `airflow.providers.common.io.datasets.file.convert_dataset_to_openlineage` is removed in Airflow 3.0 +AIR302_names.py:205:16: AIR302 `airflow.providers.common.io.datasets.file.convert_dataset_to_openlineage` is removed in Airflow 3.0 | -209 | # airflow.providers.common.io -210 | common_io_file.convert_dataset_to_openlineage +204 | # airflow.providers.common.io +205 | common_io_file.convert_dataset_to_openlineage | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -211 | common_io_file.create_dataset -212 | common_io_file.sanitize_uri +206 | common_io_file.create_dataset +207 | common_io_file.sanitize_uri | = help: Use `airflow.providers.common.io.assets.file.convert_asset_to_openlineage` instead -AIR302_names.py:211:16: AIR302 `airflow.providers.common.io.datasets.file.create_dataset` is removed in Airflow 3.0 +AIR302_names.py:206:16: AIR302 `airflow.providers.common.io.datasets.file.create_dataset` is removed in Airflow 3.0 | -209 | # airflow.providers.common.io -210 | common_io_file.convert_dataset_to_openlineage -211 | common_io_file.create_dataset +204 | # airflow.providers.common.io +205 | common_io_file.convert_dataset_to_openlineage +206 | common_io_file.create_dataset | ^^^^^^^^^^^^^^ AIR302 -212 | common_io_file.sanitize_uri +207 | common_io_file.sanitize_uri | = help: Use `airflow.providers.common.io.assets.file.create_asset` instead -AIR302_names.py:212:16: AIR302 `airflow.providers.common.io.datasets.file.sanitize_uri` is removed in Airflow 3.0 +AIR302_names.py:207:16: AIR302 `airflow.providers.common.io.datasets.file.sanitize_uri` is removed in Airflow 3.0 | -210 | common_io_file.convert_dataset_to_openlineage -211 | common_io_file.create_dataset -212 | common_io_file.sanitize_uri +205 | common_io_file.convert_dataset_to_openlineage +206 | common_io_file.create_dataset +207 | common_io_file.sanitize_uri | ^^^^^^^^^^^^ AIR302 -213 | -214 | # airflow.providers.fab +208 | +209 | # airflow.providers.fab | = help: Use `airflow.providers.common.io.assets.file.sanitize_uri` instead -AIR302_names.py:215:18: AIR302 `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 +AIR302_names.py:210:18: AIR302 `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_dataset` is removed in Airflow 3.0 | -214 | # airflow.providers.fab -215 | fab_auth_manager.is_authorized_dataset +209 | # airflow.providers.fab +210 | fab_auth_manager.is_authorized_dataset | ^^^^^^^^^^^^^^^^^^^^^ AIR302 -216 | -217 | # airflow.providers.google +211 | +212 | # airflow.providers.google | = help: Use `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_asset` instead -AIR302_names.py:220:5: AIR302 `airflow.providers.google.datasets.gcs.create_dataset` is removed in Airflow 3.0 +AIR302_names.py:215:5: AIR302 `airflow.providers.google.datasets.gcs.create_dataset` is removed in Airflow 3.0 | -218 | bigquery.sanitize_uri -219 | -220 | gcs.create_dataset +213 | bigquery.sanitize_uri +214 | +215 | gcs.create_dataset | ^^^^^^^^^^^^^^ AIR302 -221 | gcs.sanitize_uri -222 | gcs.convert_dataset_to_openlineage +216 | gcs.sanitize_uri +217 | gcs.convert_dataset_to_openlineage | = help: Use `airflow.providers.google.assets.gcs.create_asset` instead -AIR302_names.py:221:5: AIR302 `airflow.providers.google.datasets.gcs.sanitize_uri` is removed in Airflow 3.0 +AIR302_names.py:216:5: AIR302 `airflow.providers.google.datasets.gcs.sanitize_uri` is removed in Airflow 3.0 | -220 | gcs.create_dataset -221 | gcs.sanitize_uri +215 | gcs.create_dataset +216 | gcs.sanitize_uri | ^^^^^^^^^^^^ AIR302 -222 | gcs.convert_dataset_to_openlineage +217 | gcs.convert_dataset_to_openlineage | = help: Use `airflow.providers.google.assets.gcs.sanitize_uri` instead -AIR302_names.py:222:5: AIR302 `airflow.providers.google.datasets.gcs.convert_dataset_to_openlineage` is removed in Airflow 3.0 +AIR302_names.py:217:5: AIR302 `airflow.providers.google.datasets.gcs.convert_dataset_to_openlineage` is removed in Airflow 3.0 | -220 | gcs.create_dataset -221 | gcs.sanitize_uri -222 | gcs.convert_dataset_to_openlineage +215 | gcs.create_dataset +216 | gcs.sanitize_uri +217 | gcs.convert_dataset_to_openlineage | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -223 | -224 | # airflow.providers.mysql +218 | +219 | # airflow.providers.mysql | = help: Use `airflow.providers.google.assets.gcs.convert_asset_to_openlineage` instead -AIR302_names.py:225:7: AIR302 `airflow.providers.mysql.datasets.mysql.sanitize_uri` is removed in Airflow 3.0 +AIR302_names.py:220:7: AIR302 `airflow.providers.mysql.datasets.mysql.sanitize_uri` is removed in Airflow 3.0 | -224 | # airflow.providers.mysql -225 | mysql.sanitize_uri +219 | # airflow.providers.mysql +220 | mysql.sanitize_uri | ^^^^^^^^^^^^ AIR302 -226 | -227 | # airflow.providers.openlineage +221 | +222 | # airflow.providers.openlineage | = help: Use `airflow.providers.mysql.assets.mysql.sanitize_uri` instead -AIR302_names.py:228:1: AIR302 `airflow.providers.openlineage.utils.utils.DatasetInfo` is removed in Airflow 3.0 +AIR302_names.py:223:1: AIR302 `airflow.providers.openlineage.utils.utils.DatasetInfo` is removed in Airflow 3.0 | -227 | # airflow.providers.openlineage -228 | DatasetInfo(), translate_airflow_dataset +222 | # airflow.providers.openlineage +223 | DatasetInfo(), translate_airflow_dataset | ^^^^^^^^^^^ AIR302 -229 | -230 | # airflow.providers.postgres +224 | +225 | # airflow.providers.postgres | = help: Use `airflow.providers.openlineage.utils.utils.AssetInfo` instead -AIR302_names.py:228:16: AIR302 `airflow.providers.openlineage.utils.utils.translate_airflow_dataset` is removed in Airflow 3.0 +AIR302_names.py:223:16: AIR302 `airflow.providers.openlineage.utils.utils.translate_airflow_dataset` is removed in Airflow 3.0 | -227 | # airflow.providers.openlineage -228 | DatasetInfo(), translate_airflow_dataset +222 | # airflow.providers.openlineage +223 | DatasetInfo(), translate_airflow_dataset | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -229 | -230 | # airflow.providers.postgres +224 | +225 | # airflow.providers.postgres | = help: Use `airflow.providers.openlineage.utils.utils.translate_airflow_asset` instead -AIR302_names.py:231:10: AIR302 `airflow.providers.postgres.datasets.postgres.sanitize_uri` is removed in Airflow 3.0 +AIR302_names.py:226:10: AIR302 `airflow.providers.postgres.datasets.postgres.sanitize_uri` is removed in Airflow 3.0 | -230 | # airflow.providers.postgres -231 | postgres.sanitize_uri +225 | # airflow.providers.postgres +226 | postgres.sanitize_uri | ^^^^^^^^^^^^ AIR302 -232 | -233 | # airflow.providers.trino +227 | +228 | # airflow.providers.trino | = help: Use `airflow.providers.postgres.assets.postgres.sanitize_uri` instead -AIR302_names.py:234:7: AIR302 `airflow.providers.trino.datasets.trino.sanitize_uri` is removed in Airflow 3.0 +AIR302_names.py:229:7: AIR302 `airflow.providers.trino.datasets.trino.sanitize_uri` is removed in Airflow 3.0 | -233 | # airflow.providers.trino -234 | trino.sanitize_uri +228 | # airflow.providers.trino +229 | trino.sanitize_uri | ^^^^^^^^^^^^ AIR302 -235 | -236 | # airflow.secrets +230 | +231 | # airflow.secrets | = help: Use `airflow.providers.trino.assets.trino.sanitize_uri` instead -AIR302_names.py:239:5: AIR302 `get_connections` is removed in Airflow 3.0 +AIR302_names.py:234:5: AIR302 `get_connections` is removed in Airflow 3.0 | -237 | # get_connection -238 | lfb = LocalFilesystemBackend() -239 | lfb.get_connections() +232 | # get_connection +233 | lfb = LocalFilesystemBackend() +234 | lfb.get_connections() | ^^^^^^^^^^^^^^^ AIR302 -240 | load_connections +235 | load_connections | = help: Use `get_connection` instead -AIR302_names.py:240:1: AIR302 `airflow.secrets.local_filesystem.load_connections` is removed in Airflow 3.0 +AIR302_names.py:235:1: AIR302 `airflow.secrets.local_filesystem.load_connections` is removed in Airflow 3.0 | -238 | lfb = LocalFilesystemBackend() -239 | lfb.get_connections() -240 | load_connections +233 | lfb = LocalFilesystemBackend() +234 | lfb.get_connections() +235 | load_connections | ^^^^^^^^^^^^^^^^ AIR302 -241 | -242 | # airflow.security.permissions +236 | +237 | # airflow.security.permissions | = help: Use `airflow.secrets.local_filesystem.load_connections_dict` instead -AIR302_names.py:243:1: AIR302 `airflow.security.permissions.RESOURCE_DATASET` is removed in Airflow 3.0 +AIR302_names.py:238:1: AIR302 `airflow.security.permissions.RESOURCE_DATASET` is removed in Airflow 3.0 | -242 | # airflow.security.permissions -243 | RESOURCE_DATASET +237 | # airflow.security.permissions +238 | RESOURCE_DATASET | ^^^^^^^^^^^^^^^^ AIR302 -244 | -245 | # airflow.sensors.base_sensor_operator +239 | +240 | # airflow.sensors.base_sensor_operator | = help: Use `airflow.security.permissions.RESOURCE_ASSET` instead -AIR302_names.py:246:1: AIR302 `airflow.sensors.base_sensor_operator.BaseSensorOperator` is removed in Airflow 3.0 +AIR302_names.py:241:1: AIR302 `airflow.sensors.base_sensor_operator.BaseSensorOperator` is removed in Airflow 3.0 | -245 | # airflow.sensors.base_sensor_operator -246 | BaseSensorOperator() +240 | # airflow.sensors.base_sensor_operator +241 | BaseSensorOperator() | ^^^^^^^^^^^^^^^^^^ AIR302 -247 | -248 | # airflow.sensors.date_time_sensor +242 | +243 | # airflow.sensors.date_time_sensor | = help: Use `airflow.sensors.base.BaseSensorOperator` instead -AIR302_names.py:249:1: AIR302 `airflow.sensors.date_time_sensor.DateTimeSensor` is removed in Airflow 3.0 +AIR302_names.py:244:1: AIR302 `airflow.sensors.date_time_sensor.DateTimeSensor` is removed in Airflow 3.0 | -248 | # airflow.sensors.date_time_sensor -249 | DateTimeSensor() +243 | # airflow.sensors.date_time_sensor +244 | DateTimeSensor() | ^^^^^^^^^^^^^^ AIR302 -250 | -251 | # airflow.sensors.external_task +245 | +246 | # airflow.sensors.external_task | = help: Use `airflow.sensors.date_time.DateTimeSensor` instead -AIR302_names.py:252:1: AIR302 `airflow.sensors.external_task.ExternalTaskSensorLink` is removed in Airflow 3.0 +AIR302_names.py:247:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is removed in Airflow 3.0 | -251 | # airflow.sensors.external_task -252 | ExternalTaskSensorLinkFromExternalTask() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -253 | -254 | # airflow.sensors.external_task_sensor +246 | # airflow.sensors.external_task +247 | ExternalTaskSensorLink() + | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 +248 | ExternalTaskMarker() +249 | ExternalTaskSensor() | = help: Use `airflow.sensors.external_task.ExternalDagLink` instead -AIR302_names.py:255:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskMarker` is removed in Airflow 3.0 +AIR302_names.py:248:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskMarker` is removed in Airflow 3.0 | -254 | # airflow.sensors.external_task_sensor -255 | ExternalTaskMarker() +246 | # airflow.sensors.external_task +247 | ExternalTaskSensorLink() +248 | ExternalTaskMarker() | ^^^^^^^^^^^^^^^^^^ AIR302 -256 | ExternalTaskSensor() -257 | ExternalTaskSensorLinkFromExternalTaskSensor() +249 | ExternalTaskSensor() | = help: Use `airflow.sensors.external_task.ExternalTaskMarker` instead -AIR302_names.py:256:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensor` is removed in Airflow 3.0 +AIR302_names.py:249:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensor` is removed in Airflow 3.0 | -254 | # airflow.sensors.external_task_sensor -255 | ExternalTaskMarker() -256 | ExternalTaskSensor() +247 | ExternalTaskSensorLink() +248 | ExternalTaskMarker() +249 | ExternalTaskSensor() | ^^^^^^^^^^^^^^^^^^ AIR302 -257 | ExternalTaskSensorLinkFromExternalTaskSensor() +250 | +251 | # airflow.sensors.external_task_sensor | = help: Use `airflow.sensors.external_task.ExternalTaskSensor` instead -AIR302_names.py:257:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is removed in Airflow 3.0 - | -255 | ExternalTaskMarker() -256 | ExternalTaskSensor() -257 | ExternalTaskSensorLinkFromExternalTaskSensor() - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -258 | -259 | # airflow.sensors.time_delta_sensor +AIR302_names.py:257:1: AIR302 `airflow.sensors.time_delta_sensor.TimeDeltaSensor` is removed in Airflow 3.0 | - = help: Use `airflow.sensors.external_task.ExternalDagLink` instead - -AIR302_names.py:260:1: AIR302 `airflow.sensors.time_delta_sensor.TimeDeltaSensor` is removed in Airflow 3.0 - | -259 | # airflow.sensors.time_delta_sensor -260 | TimeDeltaSensor() +256 | # airflow.sensors.time_delta_sensor +257 | TimeDeltaSensor() | ^^^^^^^^^^^^^^^ AIR302 -261 | -262 | # airflow.timetables +258 | +259 | # airflow.timetables | = help: Use `airflow.sensors.time_delta.TimeDeltaSensor` instead -AIR302_names.py:263:1: AIR302 `airflow.timetables.datasets.DatasetOrTimeSchedule` is removed in Airflow 3.0 +AIR302_names.py:260:1: AIR302 `airflow.timetables.datasets.DatasetOrTimeSchedule` is removed in Airflow 3.0 | -262 | # airflow.timetables -263 | DatasetOrTimeSchedule() +259 | # airflow.timetables +260 | DatasetOrTimeSchedule() | ^^^^^^^^^^^^^^^^^^^^^ AIR302 -264 | DatasetTriggeredTimetable() +261 | DatasetTriggeredTimetable() | = help: Use `airflow.timetables.assets.AssetOrTimeSchedule` instead -AIR302_names.py:264:1: AIR302 `airflow.timetables.simple.DatasetTriggeredTimetable` is removed in Airflow 3.0 +AIR302_names.py:261:1: AIR302 `airflow.timetables.simple.DatasetTriggeredTimetable` is removed in Airflow 3.0 | -262 | # airflow.timetables -263 | DatasetOrTimeSchedule() -264 | DatasetTriggeredTimetable() +259 | # airflow.timetables +260 | DatasetOrTimeSchedule() +261 | DatasetTriggeredTimetable() | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 -265 | -266 | # airflow.triggers.external_task +262 | +263 | # airflow.triggers.external_task | = help: Use `airflow.timetables.simple.AssetTriggeredTimetable` instead -AIR302_names.py:267:1: AIR302 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0 +AIR302_names.py:264:1: AIR302 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0 | -266 | # airflow.triggers.external_task -267 | TaskStateTrigger() +263 | # airflow.triggers.external_task +264 | TaskStateTrigger() | ^^^^^^^^^^^^^^^^ AIR302 -268 | -269 | # airflow.utils.date +265 | +266 | # airflow.utils.date | -AIR302_names.py:270:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0 +AIR302_names.py:267:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0 | -269 | # airflow.utils.date -270 | dates.date_range +266 | # airflow.utils.date +267 | dates.date_range | ^^^^^^^^^^ AIR302 -271 | dates.days_ago +268 | dates.days_ago | -AIR302_names.py:271:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 +AIR302_names.py:268:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 | -269 | # airflow.utils.date -270 | dates.date_range -271 | dates.days_ago +266 | # airflow.utils.date +267 | dates.date_range +268 | dates.days_ago | ^^^^^^^^ AIR302 -272 | -273 | date_range +269 | +270 | date_range | = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead -AIR302_names.py:273:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0 +AIR302_names.py:270:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0 | -271 | dates.days_ago -272 | -273 | date_range +268 | dates.days_ago +269 | +270 | date_range | ^^^^^^^^^^ AIR302 -274 | days_ago -275 | infer_time_unit +271 | days_ago +272 | infer_time_unit | -AIR302_names.py:274:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 +AIR302_names.py:271:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0 | -273 | date_range -274 | days_ago +270 | date_range +271 | days_ago | ^^^^^^^^ AIR302 -275 | infer_time_unit -276 | parse_execution_date +272 | infer_time_unit +273 | parse_execution_date | = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead -AIR302_names.py:275:1: AIR302 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0 +AIR302_names.py:272:1: AIR302 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0 | -273 | date_range -274 | days_ago -275 | infer_time_unit +270 | date_range +271 | days_ago +272 | infer_time_unit | ^^^^^^^^^^^^^^^ AIR302 -276 | parse_execution_date -277 | round_time +273 | parse_execution_date +274 | round_time | -AIR302_names.py:276:1: AIR302 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0 +AIR302_names.py:273:1: AIR302 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0 | -274 | days_ago -275 | infer_time_unit -276 | parse_execution_date +271 | days_ago +272 | infer_time_unit +273 | parse_execution_date | ^^^^^^^^^^^^^^^^^^^^ AIR302 -277 | round_time -278 | scale_time_units +274 | round_time +275 | scale_time_units | -AIR302_names.py:277:1: AIR302 `airflow.utils.dates.round_time` is removed in Airflow 3.0 +AIR302_names.py:274:1: AIR302 `airflow.utils.dates.round_time` is removed in Airflow 3.0 | -275 | infer_time_unit -276 | parse_execution_date -277 | round_time +272 | infer_time_unit +273 | parse_execution_date +274 | round_time | ^^^^^^^^^^ AIR302 -278 | scale_time_units +275 | scale_time_units | -AIR302_names.py:278:1: AIR302 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0 +AIR302_names.py:275:1: AIR302 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0 | -276 | parse_execution_date -277 | round_time -278 | scale_time_units +273 | parse_execution_date +274 | round_time +275 | scale_time_units | ^^^^^^^^^^^^^^^^ AIR302 -279 | -280 | # This one was not deprecated. +276 | +277 | # This one was not deprecated. | -AIR302_names.py:285:1: AIR302 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0 +AIR302_names.py:282:1: AIR302 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0 | -284 | # airflow.utils.dag_cycle_tester -285 | test_cycle +281 | # airflow.utils.dag_cycle_tester +282 | test_cycle | ^^^^^^^^^^ AIR302 -286 | -287 | # airflow.utils.dag_parsing_context +283 | +284 | # airflow.utils.dag_parsing_context | -AIR302_names.py:288:1: AIR302 `airflow.utils.dag_parsing_context.get_parsing_context` is removed in Airflow 3.0 +AIR302_names.py:285:1: AIR302 `airflow.utils.dag_parsing_context.get_parsing_context` is removed in Airflow 3.0 | -287 | # airflow.utils.dag_parsing_context -288 | get_parsing_context +284 | # airflow.utils.dag_parsing_context +285 | get_parsing_context | ^^^^^^^^^^^^^^^^^^^ AIR302 -289 | -290 | # airflow.utils.decorators +286 | +287 | # airflow.utils.decorators | = help: Use `airflow.sdk.get_parsing_context` instead -AIR302_names.py:291:1: AIR302 `airflow.utils.decorators.apply_defaults` is removed in Airflow 3.0; `apply_defaults` is now unconditionally done and can be safely removed. +AIR302_names.py:288:1: AIR302 `airflow.utils.decorators.apply_defaults` is removed in Airflow 3.0; `apply_defaults` is now unconditionally done and can be safely removed. | -290 | # airflow.utils.decorators -291 | apply_defaults +287 | # airflow.utils.decorators +288 | apply_defaults | ^^^^^^^^^^^^^^ AIR302 -292 | -293 | # airflow.utils.file +289 | +290 | # airflow.utils.file | -AIR302_names.py:294:22: AIR302 `airflow.utils.file.mkdirs` is removed in Airflow 3.0 +AIR302_names.py:291:22: AIR302 `airflow.utils.file.mkdirs` is removed in Airflow 3.0 | -293 | # airflow.utils.file -294 | TemporaryDirector(), mkdirs +290 | # airflow.utils.file +291 | TemporaryDirector(), mkdirs | ^^^^^^ AIR302 -295 | -296 | # airflow.utils.helpers +292 | +293 | # airflow.utils.helpers | = help: Use `pendulum.today('UTC').add(days=-N, ...)` instead -AIR302_names.py:297:1: AIR302 `airflow.utils.helpers.chain` is removed in Airflow 3.0 +AIR302_names.py:294:1: AIR302 `airflow.utils.helpers.chain` is removed in Airflow 3.0 | -296 | # airflow.utils.helpers -297 | chain, cross_downstream +293 | # airflow.utils.helpers +294 | chain, cross_downstream | ^^^^^ AIR302 -298 | -299 | # airflow.utils.state +295 | +296 | # airflow.utils.state | = help: Use `airflow.models.baseoperator.chain` instead -AIR302_names.py:297:8: AIR302 `airflow.utils.helpers.cross_downstream` is removed in Airflow 3.0 +AIR302_names.py:294:8: AIR302 `airflow.utils.helpers.cross_downstream` is removed in Airflow 3.0 | -296 | # airflow.utils.helpers -297 | chain, cross_downstream +293 | # airflow.utils.helpers +294 | chain, cross_downstream | ^^^^^^^^^^^^^^^^ AIR302 -298 | -299 | # airflow.utils.state +295 | +296 | # airflow.utils.state | = help: Use `airflow.models.baseoperator.cross_downstream` instead -AIR302_names.py:300:1: AIR302 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0 +AIR302_names.py:297:1: AIR302 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0 | -299 | # airflow.utils.state -300 | SHUTDOWN, terminating_states +296 | # airflow.utils.state +297 | SHUTDOWN, terminating_states | ^^^^^^^^ AIR302 -301 | -302 | # airflow.utils.trigger_rule +298 | +299 | # airflow.utils.trigger_rule | -AIR302_names.py:300:11: AIR302 `airflow.utils.state.terminating_states` is removed in Airflow 3.0 +AIR302_names.py:297:11: AIR302 `airflow.utils.state.terminating_states` is removed in Airflow 3.0 | -299 | # airflow.utils.state -300 | SHUTDOWN, terminating_states +296 | # airflow.utils.state +297 | SHUTDOWN, terminating_states | ^^^^^^^^^^^^^^^^^^ AIR302 -301 | -302 | # airflow.utils.trigger_rule +298 | +299 | # airflow.utils.trigger_rule | -AIR302_names.py:303:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.DUMMY` is removed in Airflow 3.0 +AIR302_names.py:300:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.DUMMY` is removed in Airflow 3.0 | -302 | # airflow.utils.trigger_rule -303 | TriggerRule.DUMMY +299 | # airflow.utils.trigger_rule +300 | TriggerRule.DUMMY | ^^^^^ AIR302 -304 | TriggerRule.NONE_FAILED_OR_SKIPPED +301 | TriggerRule.NONE_FAILED_OR_SKIPPED | -AIR302_names.py:304:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.NONE_FAILED_OR_SKIPPED` is removed in Airflow 3.0 +AIR302_names.py:301:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.NONE_FAILED_OR_SKIPPED` is removed in Airflow 3.0 | -302 | # airflow.utils.trigger_rule -303 | TriggerRule.DUMMY -304 | TriggerRule.NONE_FAILED_OR_SKIPPED +299 | # airflow.utils.trigger_rule +300 | TriggerRule.DUMMY +301 | TriggerRule.NONE_FAILED_OR_SKIPPED | ^^^^^^^^^^^^^^^^^^^^^^ AIR302 -305 | -306 | # airflow.www.auth +302 | +303 | # airflow.www.auth | -AIR302_names.py:307:1: AIR302 `airflow.www.auth.has_access` is removed in Airflow 3.0 +AIR302_names.py:304:1: AIR302 `airflow.www.auth.has_access` is removed in Airflow 3.0 | -306 | # airflow.www.auth -307 | has_access +303 | # airflow.www.auth +304 | has_access | ^^^^^^^^^^ AIR302 -308 | has_access_dataset +305 | has_access_dataset | = help: Use `airflow.www.auth.has_access_*` instead -AIR302_names.py:308:1: AIR302 `airflow.www.auth.has_access_dataset` is removed in Airflow 3.0 +AIR302_names.py:305:1: AIR302 `airflow.www.auth.has_access_dataset` is removed in Airflow 3.0 | -306 | # airflow.www.auth -307 | has_access -308 | has_access_dataset +303 | # airflow.www.auth +304 | has_access +305 | has_access_dataset | ^^^^^^^^^^^^^^^^^^ AIR302 -309 | -310 | # airflow.www.utils +306 | +307 | # airflow.www.utils | = help: Use `airflow.www.auth.has_access_dataset.has_access_asset` instead -AIR302_names.py:311:1: AIR302 `airflow.www.utils.get_sensitive_variables_fields` is removed in Airflow 3.0 +AIR302_names.py:308:1: AIR302 `airflow.www.utils.get_sensitive_variables_fields` is removed in Airflow 3.0 | -310 | # airflow.www.utils -311 | get_sensitive_variables_fields, should_hide_value_for_key +307 | # airflow.www.utils +308 | get_sensitive_variables_fields, should_hide_value_for_key | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 | = help: Use `airflow.utils.log.secrets_masker.get_sensitive_variables_fields` instead -AIR302_names.py:311:33: AIR302 `airflow.www.utils.should_hide_value_for_key` is removed in Airflow 3.0 +AIR302_names.py:308:33: AIR302 `airflow.www.utils.should_hide_value_for_key` is removed in Airflow 3.0 | -310 | # airflow.www.utils -311 | get_sensitive_variables_fields, should_hide_value_for_key +307 | # airflow.www.utils +308 | get_sensitive_variables_fields, should_hide_value_for_key | ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302 | = help: Use `airflow.utils.log.secrets_masker.should_hide_value_for_key` instead