mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-27 20:42:10 +00:00
[airflow]: extend removed names (AIR302) (#14804)
## Summary Airflow 3.0 removes various deprecated functions, members, modules, and other values. They have been deprecated in 2.x, but the removal causes incompatibilities that we want to detect. This PR deprecates the following names. The full list of rules we will extend https://github.com/apache/airflow/issues/44556 #### package * `airflow.contrib.*` #### module * `airflow.operators.subdag.*` #### class * `airflow.sensors.external_task.ExternalTaskSensorLink` → `airflow.sensors.external_task.ExternalDagLin` * `airflow.operators.bash_operator.BashOperator` → `airflow.operators.bash.BashOperator` * `airflow.operators.branch_operator.BaseBranchOperator` → `airflow.operators.branch.BaseBranchOperator` * `airflow.operators.dummy.EmptyOperator` → `airflow.operators.empty.EmptyOperator` * `airflow.operators.dummy.DummyOperator` → `airflow.operators.empty.EmptyOperator` * `airflow.operators.dummy_operator.EmptyOperator` → `airflow.operators.empty.EmptyOperator` * `airflow.operators.dummy_operator.DummyOperator` → `airflow.operators.empty.EmptyOperator` * `airflow.operators.email_operator.EmailOperator` → `airflow.operators.email.EmailOperator` * `airflow.sensors.base_sensor_operator.BaseSensorOperator` → `airflow.sensors.base.BaseSensorOperator` * `airflow.sensors.date_time_sensor.DateTimeSensor` → `airflow.sensors.date_time.DateTimeSensor` * `airflow.sensors.external_task_sensor.ExternalTaskMarker` → `airflow.sensors.external_task.ExternalTaskMarker` * `airflow.sensors.external_task_sensor.ExternalTaskSensor` → `airflow.sensors.external_task.ExternalTaskSensor` * `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` → `airflow.sensors.external_task.ExternalTaskSensorLink` * `airflow.sensors.time_delta_sensor.TimeDeltaSensor` → `airflow.sensors.time_delta.TimeDeltaSensor` #### function * `airflow.utils.decorators.apply_defaults` * `airflow.www.utils.get_sensitive_variables_fields` → `airflow.utils.log.secrets_masker.get_sensitive_variables_fields` * `airflow.www.utils.should_hide_value_for_key` → `airflow.utils.log.secrets_masker.should_hide_value_for_key` * `airflow.configuration.get` → `airflow.configuration.conf.get` * `airflow.configuration.getboolean` → `airflow.configuration.conf.getboolean` * `airflow.configuration.getfloat` → `airflow.configuration.conf.getfloat` * `airflow.configuration.getint` → `airflow.configuration.conf.getint` * `airflow.configuration.has_option` → `airflow.configuration.conf.has_option` * `airflow.configuration.remove_option` → `airflow.configuration.conf.remove_option` * `airflow.configuration.as_dict` → `airflow.configuration.conf.as_dict` * `airflow.configuration.set` → `airflow.configuration.conf.set` * `airflow.secrets.local_filesystem.load_connections` → `airflow.secrets.local_filesystem.load_connections_dict` * `airflow.secrets.local_filesystem.get_connection` → `airflow.secrets.local_filesystem.load_connections_dict` * `airflow.utils.helpers.chain` → `airflow.models.baseoperator.chain` * `airflow.utils.helpers.cross_downstream` → `airflow.models.baseoperator.cross_downstream` #### attribute * in `airflow.utils.trigger_rule.TriggerRule` * `DUMMY` * `NONE_FAILED_OR_SKIPPED` #### constant / variable * `airflow.PY\d\d`
This commit is contained in:
parent
918358aaa6
commit
39623f8d40
3 changed files with 723 additions and 99 deletions
|
@ -1,8 +1,35 @@
|
||||||
|
from airflow import PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
from airflow.triggers.external_task import TaskStateTrigger
|
from airflow.triggers.external_task import TaskStateTrigger
|
||||||
from airflow.www.auth import has_access
|
|
||||||
from airflow.api_connexion.security import requires_access
|
from airflow.api_connexion.security import requires_access
|
||||||
|
from airflow.configuration import (
|
||||||
|
get,
|
||||||
|
getboolean,
|
||||||
|
getfloat,
|
||||||
|
getint,
|
||||||
|
has_option,
|
||||||
|
remove_option,
|
||||||
|
as_dict,
|
||||||
|
set,
|
||||||
|
)
|
||||||
|
from airflow.contrib.aws_athena_hook import AWSAthenaHook
|
||||||
from airflow.metrics.validators import AllowListValidator
|
from airflow.metrics.validators import AllowListValidator
|
||||||
from airflow.metrics.validators import BlockListValidator
|
from airflow.metrics.validators import BlockListValidator
|
||||||
|
from airflow.operators.subdag import SubDagOperator
|
||||||
|
from airflow.sensors.external_task import ExternalTaskSensorLink
|
||||||
|
from airflow.operators.bash_operator import BashOperator
|
||||||
|
from airflow.operators.branch_operator import BaseBranchOperator
|
||||||
|
from airflow.operators.dummy import EmptyOperator, DummyOperator
|
||||||
|
from airflow.operators import dummy_operator
|
||||||
|
from airflow.operators.email_operator import EmailOperator
|
||||||
|
from airflow.sensors.base_sensor_operator import BaseSensorOperator
|
||||||
|
from airflow.sensors.date_time_sensor import DateTimeSensor
|
||||||
|
from airflow.sensors.external_task_sensor import (
|
||||||
|
ExternalTaskMarker,
|
||||||
|
ExternalTaskSensor,
|
||||||
|
ExternalTaskSensorLink,
|
||||||
|
)
|
||||||
|
from airflow.sensors.time_delta_sensor import TimeDeltaSensor
|
||||||
|
from airflow.secrets.local_filesystem import get_connection, load_connections
|
||||||
from airflow.utils import dates
|
from airflow.utils import dates
|
||||||
from airflow.utils.dates import (
|
from airflow.utils.dates import (
|
||||||
date_range,
|
date_range,
|
||||||
|
@ -13,20 +40,27 @@ from airflow.utils.dates import (
|
||||||
round_time,
|
round_time,
|
||||||
scale_time_units,
|
scale_time_units,
|
||||||
)
|
)
|
||||||
|
from airflow.utils.decorators import apply_defaults
|
||||||
from airflow.utils.file import TemporaryDirectory, mkdirs
|
from airflow.utils.file import TemporaryDirectory, mkdirs
|
||||||
|
from airflow.utils.helpers import chain, cross_downstream
|
||||||
from airflow.utils.state import SHUTDOWN, terminating_states
|
from airflow.utils.state import SHUTDOWN, terminating_states
|
||||||
from airflow.utils.dag_cycle_tester import test_cycle
|
from airflow.utils.dag_cycle_tester import test_cycle
|
||||||
|
from airflow.utils.trigger_rule import TriggerRule
|
||||||
|
from airflow.www.auth import has_access
|
||||||
|
from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
|
||||||
|
PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
|
||||||
|
AWSAthenaHook
|
||||||
TaskStateTrigger
|
TaskStateTrigger
|
||||||
|
|
||||||
|
|
||||||
has_access
|
|
||||||
requires_access
|
requires_access
|
||||||
|
|
||||||
AllowListValidator
|
AllowListValidator
|
||||||
BlockListValidator
|
BlockListValidator
|
||||||
|
|
||||||
|
SubDagOperator
|
||||||
|
|
||||||
dates.date_range
|
dates.date_range
|
||||||
dates.days_ago
|
dates.days_ago
|
||||||
|
|
||||||
|
@ -42,11 +76,38 @@ infer_time_unit
|
||||||
datetime_to_nano
|
datetime_to_nano
|
||||||
dates.datetime_to_nano
|
dates.datetime_to_nano
|
||||||
|
|
||||||
|
get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
|
||||||
|
get_connection, load_connections
|
||||||
|
|
||||||
|
|
||||||
|
ExternalTaskSensorLink
|
||||||
|
BashOperator
|
||||||
|
BaseBranchOperator
|
||||||
|
EmptyOperator, DummyOperator
|
||||||
|
dummy_operator.EmptyOperator
|
||||||
|
dummy_operator.DummyOperator
|
||||||
|
EmailOperator
|
||||||
|
BaseSensorOperator
|
||||||
|
DateTimeSensor
|
||||||
|
(ExternalTaskMarker, ExternalTaskSensor, ExternalTaskSensorLink)
|
||||||
|
TimeDeltaSensor
|
||||||
|
|
||||||
|
apply_defaults
|
||||||
|
|
||||||
TemporaryDirectory
|
TemporaryDirectory
|
||||||
mkdirs
|
mkdirs
|
||||||
|
|
||||||
|
chain
|
||||||
|
cross_downstream
|
||||||
|
|
||||||
SHUTDOWN
|
SHUTDOWN
|
||||||
terminating_states
|
terminating_states
|
||||||
|
|
||||||
|
TriggerRule.DUMMY
|
||||||
|
TriggerRule.NONE_FAILED_OR_SKIPPED
|
||||||
|
|
||||||
test_cycle
|
test_cycle
|
||||||
|
|
||||||
|
has_access
|
||||||
|
get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
|
|
@ -10,6 +10,7 @@ use crate::checkers::ast::Checker;
|
||||||
enum Replacement {
|
enum Replacement {
|
||||||
None,
|
None,
|
||||||
Name(String),
|
Name(String),
|
||||||
|
Message(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// ## What it does
|
/// ## What it does
|
||||||
|
@ -53,6 +54,9 @@ impl Violation for Airflow3Removal {
|
||||||
Replacement::Name(name) => {
|
Replacement::Name(name) => {
|
||||||
format!("`{deprecated}` is removed in Airflow 3.0; use `{name}` instead")
|
format!("`{deprecated}` is removed in Airflow 3.0; use `{name}` instead")
|
||||||
}
|
}
|
||||||
|
Replacement::Message(message) => {
|
||||||
|
format!("`{deprecated}` is removed in Airflow 3.0; {message}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,16 +110,76 @@ fn removed_name(checker: &mut Checker, expr: &Expr, ranged: impl Ranged) {
|
||||||
["airflow", "triggers", "external_task", "TaskStateTrigger"] => {
|
["airflow", "triggers", "external_task", "TaskStateTrigger"] => {
|
||||||
Some((qualname.to_string(), Replacement::None))
|
Some((qualname.to_string(), Replacement::None))
|
||||||
}
|
}
|
||||||
["airflow", "www", "auth", "has_access"] => Some((
|
|
||||||
qualname.to_string(),
|
|
||||||
Replacement::Name("airflow.www.auth.has_access_*".to_string()),
|
|
||||||
)),
|
|
||||||
["airflow", "api_connexion", "security", "requires_access"] => Some((
|
["airflow", "api_connexion", "security", "requires_access"] => Some((
|
||||||
qualname.to_string(),
|
qualname.to_string(),
|
||||||
Replacement::Name(
|
Replacement::Name(
|
||||||
"airflow.api_connexion.security.requires_access_*".to_string(),
|
"airflow.api_connexion.security.requires_access_*".to_string(),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
// airflow.PY\d{1,2}
|
||||||
|
["airflow", "PY36"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("sys.version_info".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "PY37"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("sys.version_info".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "PY38"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("sys.version_info".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "PY39"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("sys.version_info".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "PY310"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("sys.version_info".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "PY311"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("sys.version_info".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "PY312"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("sys.version_info".to_string()),
|
||||||
|
)),
|
||||||
|
// airflow.configuration
|
||||||
|
["airflow", "configuration", "get"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.get".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "configuration", "getboolean"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.getboolean".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "configuration", "getfloat"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.getfloat".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "configuration", "getint"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.getint".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "configuration", "has_option"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.has_option".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "configuration", "remove_option"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.remove_option".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "configuration", "as_dict"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.as_dict".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "configuration", "set"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.configuration.conf.set".to_string()),
|
||||||
|
)),
|
||||||
|
// airflow.contrib.*
|
||||||
|
["airflow", "contrib", ..] => Some((qualname.to_string(), Replacement::None)),
|
||||||
// airflow.metrics.validators
|
// airflow.metrics.validators
|
||||||
["airflow", "metrics", "validators", "AllowListValidator"] => Some((
|
["airflow", "metrics", "validators", "AllowListValidator"] => Some((
|
||||||
qualname.to_string(),
|
qualname.to_string(),
|
||||||
|
@ -129,6 +193,85 @@ fn removed_name(checker: &mut Checker, expr: &Expr, ranged: impl Ranged) {
|
||||||
"airflow.metrics.validators.PatternBlockListValidator".to_string(),
|
"airflow.metrics.validators.PatternBlockListValidator".to_string(),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
// airflow.operators
|
||||||
|
["airflow", "operators", "subdag", ..] => {
|
||||||
|
Some((qualname.to_string(), Replacement::None))
|
||||||
|
}
|
||||||
|
["airflow.sensors.external_task.ExternalTaskSensorLink"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.sensors.external_task.ExternalDagLin".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "operators", "bash_operator", "BashOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.operators.bash.BashOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "operators", "branch_operator", "BaseBranchOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.operators.branch.BaseBranchOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "operators", " dummy", "EmptyOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.operators.empty.EmptyOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "operators", "dummy", "DummyOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.operators.empty.EmptyOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "operators", "dummy_operator", "EmptyOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.operators.empty.EmptyOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "operators", "dummy_operator", "DummyOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.operators.empty.EmptyOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "operators", "email_operator", "EmailOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.operators.email.EmailOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "sensors", "base_sensor_operator", "BaseSensorOperator"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.sensors.base.BaseSensorOperator".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "sensors", "date_time_sensor", "DateTimeSensor"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.sensors.date_time.DateTimeSensor".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "sensors", "external_task_sensor", "ExternalTaskMarker"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name(
|
||||||
|
"airflow.sensors.external_task.ExternalTaskMarker".to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
["airflow", "sensors", "external_task_sensor", "ExternalTaskSensor"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name(
|
||||||
|
"airflow.sensors.external_task.ExternalTaskSensor".to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
["airflow", "sensors", "external_task_sensor", "ExternalTaskSensorLink"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name(
|
||||||
|
"airflow.sensors.external_task.ExternalTaskSensorLink".to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
["airflow", "sensors", "time_delta_sensor", "TimeDeltaSensor"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.sensors.time_delta.TimeDeltaSensor".to_string()),
|
||||||
|
)),
|
||||||
|
// airflow.secrets
|
||||||
|
["airflow", "secrets", "local_filesystem", "load_connections"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name(
|
||||||
|
"airflow.secrets.local_filesystem.load_connections_dict".to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
["airflow", "secrets", "local_filesystem", "get_connection"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name(
|
||||||
|
"airflow.secrets.local_filesystem.load_connections_dict".to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
// airflow.utils.dates
|
// airflow.utils.dates
|
||||||
["airflow", "utils", "dates", "date_range"] => Some((
|
["airflow", "utils", "dates", "date_range"] => Some((
|
||||||
qualname.to_string(),
|
qualname.to_string(),
|
||||||
|
@ -158,6 +301,16 @@ fn removed_name(checker: &mut Checker, expr: &Expr, ranged: impl Ranged) {
|
||||||
qualname.to_string(),
|
qualname.to_string(),
|
||||||
Replacement::Name("pendulum.today('UTC').add(days=-N, ...)".to_string()),
|
Replacement::Name("pendulum.today('UTC').add(days=-N, ...)".to_string()),
|
||||||
)),
|
)),
|
||||||
|
|
||||||
|
// airflow.utils.helpers
|
||||||
|
["airflow", "utils", "helpers", "chain"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.models.baseoperator.chain".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "utils", "helpers", "cross_downstream"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.models.baseoperator.cross_downstream".to_string()),
|
||||||
|
)),
|
||||||
// airflow.utils.state
|
// airflow.utils.state
|
||||||
["airflow", "utils", "state", "SHUTDOWN"] => {
|
["airflow", "utils", "state", "SHUTDOWN"] => {
|
||||||
Some((qualname.to_string(), Replacement::None))
|
Some((qualname.to_string(), Replacement::None))
|
||||||
|
@ -165,13 +318,42 @@ fn removed_name(checker: &mut Checker, expr: &Expr, ranged: impl Ranged) {
|
||||||
["airflow", "utils", "state", "terminating_states"] => {
|
["airflow", "utils", "state", "terminating_states"] => {
|
||||||
Some((qualname.to_string(), Replacement::None))
|
Some((qualname.to_string(), Replacement::None))
|
||||||
}
|
}
|
||||||
|
// airflow.utils.trigger_rule
|
||||||
|
["airflow", "utils", "trigger_rule", "TriggerRule", "DUMMY"] => {
|
||||||
|
Some((qualname.to_string(), Replacement::None))
|
||||||
|
}
|
||||||
|
["airflow", "utils", "trigger_rule", "TriggerRule", "NONE_FAILED_OR_SKIPPED"] => {
|
||||||
|
Some((qualname.to_string(), Replacement::None))
|
||||||
|
}
|
||||||
// airflow.uilts
|
// airflow.uilts
|
||||||
["airflow", "utils", "dag_cycle_tester", "test_cycle"] => {
|
["airflow", "utils", "dag_cycle_tester", "test_cycle"] => {
|
||||||
Some((qualname.to_string(), Replacement::None))
|
Some((qualname.to_string(), Replacement::None))
|
||||||
}
|
}
|
||||||
["airflow", "utils", "decorators", "apply_defaults"] => {
|
["airflow", "utils", "decorators", "apply_defaults"] => Some((
|
||||||
Some((qualname.to_string(), Replacement::None))
|
qualname.to_string(),
|
||||||
}
|
Replacement::Message(
|
||||||
|
"`apply_defaults` is now unconditionally done and can be safely removed."
|
||||||
|
.to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
// airflow.www
|
||||||
|
["airflow", "www", "auth", "has_access"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name("airflow.www.auth.has_access_*".to_string()),
|
||||||
|
)),
|
||||||
|
["airflow", "www", "utils", "get_sensitive_variables_fields"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name(
|
||||||
|
"airflow.utils.log.secrets_masker.get_sensitive_variables_fields"
|
||||||
|
.to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
["airflow", "www", "utils", "should_hide_value_for_key"] => Some((
|
||||||
|
qualname.to_string(),
|
||||||
|
Replacement::Name(
|
||||||
|
"airflow.utils.log.secrets_masker.should_hide_value_for_key".to_string(),
|
||||||
|
),
|
||||||
|
)),
|
||||||
_ => None,
|
_ => None,
|
||||||
});
|
});
|
||||||
if let Some((deprecated, replacement)) = result {
|
if let Some((deprecated, replacement)) = result {
|
||||||
|
|
|
@ -2,156 +2,537 @@
|
||||||
source: crates/ruff_linter/src/rules/airflow/mod.rs
|
source: crates/ruff_linter/src/rules/airflow/mod.rs
|
||||||
snapshot_kind: text
|
snapshot_kind: text
|
||||||
---
|
---
|
||||||
AIR302_names.py:21:1: AIR302 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0
|
AIR302_names.py:52:1: AIR302 `airflow.PY36` is removed in Airflow 3.0; use `sys.version_info` instead
|
||||||
|
|
|
|
||||||
21 | TaskStateTrigger
|
50 | from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
51 |
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
| ^^^^ AIR302
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:52:7: AIR302 `airflow.PY37` is removed in Airflow 3.0; use `sys.version_info` instead
|
||||||
|
|
|
||||||
|
50 | from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
51 |
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
| ^^^^ AIR302
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:52:13: AIR302 `airflow.PY38` is removed in Airflow 3.0; use `sys.version_info` instead
|
||||||
|
|
|
||||||
|
50 | from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
51 |
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
| ^^^^ AIR302
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:52:19: AIR302 `airflow.PY39` is removed in Airflow 3.0; use `sys.version_info` instead
|
||||||
|
|
|
||||||
|
50 | from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
51 |
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
| ^^^^ AIR302
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:52:25: AIR302 `airflow.PY310` is removed in Airflow 3.0; use `sys.version_info` instead
|
||||||
|
|
|
||||||
|
50 | from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
51 |
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
| ^^^^^ AIR302
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:52:32: AIR302 `airflow.PY311` is removed in Airflow 3.0; use `sys.version_info` instead
|
||||||
|
|
|
||||||
|
50 | from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
51 |
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
| ^^^^^ AIR302
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:52:39: AIR302 `airflow.PY312` is removed in Airflow 3.0; use `sys.version_info` instead
|
||||||
|
|
|
||||||
|
50 | from airflow.www.utils import get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
51 |
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
| ^^^^^ AIR302
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:54:1: AIR302 `airflow.contrib.aws_athena_hook.AWSAthenaHook` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
52 | PY36, PY37, PY38, PY39, PY310, PY311, PY312
|
||||||
|
53 |
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
| ^^^^^^^^^^^^^ AIR302
|
||||||
|
55 | TaskStateTrigger
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:55:1: AIR302 `airflow.triggers.external_task.TaskStateTrigger` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
54 | AWSAthenaHook
|
||||||
|
55 | TaskStateTrigger
|
||||||
| ^^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
56 |
|
||||||
|
57 | requires_access
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:24:1: AIR302 `airflow.www.auth.has_access` is removed in Airflow 3.0; use `airflow.www.auth.has_access_*` instead
|
AIR302_names.py:57:1: AIR302 `airflow.api_connexion.security.requires_access` is removed in Airflow 3.0; use `airflow.api_connexion.security.requires_access_*` instead
|
||||||
|
|
|
|
||||||
24 | has_access
|
55 | TaskStateTrigger
|
||||||
| ^^^^^^^^^^ AIR302
|
56 |
|
||||||
25 | requires_access
|
57 | requires_access
|
||||||
|
|
|
||||||
|
|
||||||
AIR302_names.py:25:1: AIR302 `airflow.api_connexion.security.requires_access` is removed in Airflow 3.0; use `airflow.api_connexion.security.requires_access_*` instead
|
|
||||||
|
|
|
||||||
24 | has_access
|
|
||||||
25 | requires_access
|
|
||||||
| ^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^ AIR302
|
||||||
26 |
|
58 |
|
||||||
27 | AllowListValidator
|
59 | AllowListValidator
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:27:1: AIR302 `airflow.metrics.validators.AllowListValidator` is removed in Airflow 3.0; use `airflow.metrics.validators.PatternAllowListValidator` instead
|
AIR302_names.py:59:1: AIR302 `airflow.metrics.validators.AllowListValidator` is removed in Airflow 3.0; use `airflow.metrics.validators.PatternAllowListValidator` instead
|
||||||
|
|
|
|
||||||
25 | requires_access
|
57 | requires_access
|
||||||
26 |
|
58 |
|
||||||
27 | AllowListValidator
|
59 | AllowListValidator
|
||||||
| ^^^^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
28 | BlockListValidator
|
60 | BlockListValidator
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:28:1: AIR302 `airflow.metrics.validators.BlockListValidator` is removed in Airflow 3.0; use `airflow.metrics.validators.PatternBlockListValidator` instead
|
AIR302_names.py:60:1: AIR302 `airflow.metrics.validators.BlockListValidator` is removed in Airflow 3.0; use `airflow.metrics.validators.PatternBlockListValidator` instead
|
||||||
|
|
|
|
||||||
27 | AllowListValidator
|
59 | AllowListValidator
|
||||||
28 | BlockListValidator
|
60 | BlockListValidator
|
||||||
| ^^^^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
29 |
|
61 |
|
||||||
30 | dates.date_range
|
62 | SubDagOperator
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:30:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0; use `airflow.timetables.` instead
|
AIR302_names.py:62:1: AIR302 `airflow.operators.subdag.SubDagOperator` is removed in Airflow 3.0
|
||||||
|
|
|
|
||||||
28 | BlockListValidator
|
60 | BlockListValidator
|
||||||
29 |
|
61 |
|
||||||
30 | dates.date_range
|
62 | SubDagOperator
|
||||||
|
| ^^^^^^^^^^^^^^ AIR302
|
||||||
|
63 |
|
||||||
|
64 | dates.date_range
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:64:7: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0; use `airflow.timetables.` instead
|
||||||
|
|
|
||||||
|
62 | SubDagOperator
|
||||||
|
63 |
|
||||||
|
64 | dates.date_range
|
||||||
| ^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^ AIR302
|
||||||
31 | dates.days_ago
|
65 | dates.days_ago
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:31:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use `pendulum.today('UTC').add(days=-N, ...)` instead
|
AIR302_names.py:65:7: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use `pendulum.today('UTC').add(days=-N, ...)` instead
|
||||||
|
|
|
|
||||||
30 | dates.date_range
|
64 | dates.date_range
|
||||||
31 | dates.days_ago
|
65 | dates.days_ago
|
||||||
| ^^^^^^^^ AIR302
|
| ^^^^^^^^ AIR302
|
||||||
32 |
|
66 |
|
||||||
33 | date_range
|
67 | date_range
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:33:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0; use `airflow.timetables.` instead
|
AIR302_names.py:67:1: AIR302 `airflow.utils.dates.date_range` is removed in Airflow 3.0; use `airflow.timetables.` instead
|
||||||
|
|
|
|
||||||
31 | dates.days_ago
|
65 | dates.days_ago
|
||||||
32 |
|
66 |
|
||||||
33 | date_range
|
67 | date_range
|
||||||
| ^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^ AIR302
|
||||||
34 | days_ago
|
68 | days_ago
|
||||||
35 | parse_execution_date
|
69 | parse_execution_date
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:34:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use `pendulum.today('UTC').add(days=-N, ...)` instead
|
AIR302_names.py:68:1: AIR302 `airflow.utils.dates.days_ago` is removed in Airflow 3.0; use `pendulum.today('UTC').add(days=-N, ...)` instead
|
||||||
|
|
|
|
||||||
33 | date_range
|
67 | date_range
|
||||||
34 | days_ago
|
68 | days_ago
|
||||||
| ^^^^^^^^ AIR302
|
| ^^^^^^^^ AIR302
|
||||||
35 | parse_execution_date
|
69 | parse_execution_date
|
||||||
36 | round_time
|
70 | round_time
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:35:1: AIR302 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0
|
AIR302_names.py:69:1: AIR302 `airflow.utils.dates.parse_execution_date` is removed in Airflow 3.0
|
||||||
|
|
|
|
||||||
33 | date_range
|
67 | date_range
|
||||||
34 | days_ago
|
68 | days_ago
|
||||||
35 | parse_execution_date
|
69 | parse_execution_date
|
||||||
| ^^^^^^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
36 | round_time
|
70 | round_time
|
||||||
37 | scale_time_units
|
71 | scale_time_units
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:36:1: AIR302 `airflow.utils.dates.round_time` is removed in Airflow 3.0
|
AIR302_names.py:70:1: AIR302 `airflow.utils.dates.round_time` is removed in Airflow 3.0
|
||||||
|
|
|
|
||||||
34 | days_ago
|
68 | days_ago
|
||||||
35 | parse_execution_date
|
69 | parse_execution_date
|
||||||
36 | round_time
|
70 | round_time
|
||||||
| ^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^ AIR302
|
||||||
37 | scale_time_units
|
71 | scale_time_units
|
||||||
38 | infer_time_unit
|
72 | infer_time_unit
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:37:1: AIR302 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0
|
AIR302_names.py:71:1: AIR302 `airflow.utils.dates.scale_time_units` is removed in Airflow 3.0
|
||||||
|
|
|
|
||||||
35 | parse_execution_date
|
69 | parse_execution_date
|
||||||
36 | round_time
|
70 | round_time
|
||||||
37 | scale_time_units
|
71 | scale_time_units
|
||||||
| ^^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^^ AIR302
|
||||||
38 | infer_time_unit
|
72 | infer_time_unit
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:38:1: AIR302 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0
|
AIR302_names.py:72:1: AIR302 `airflow.utils.dates.infer_time_unit` is removed in Airflow 3.0
|
||||||
|
|
|
|
||||||
36 | round_time
|
70 | round_time
|
||||||
37 | scale_time_units
|
71 | scale_time_units
|
||||||
38 | infer_time_unit
|
72 | infer_time_unit
|
||||||
| ^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^ AIR302
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:45:1: AIR302 `airflow.utils.file.TemporaryDirectory` is removed in Airflow 3.0
|
AIR302_names.py:79:1: AIR302 `airflow.configuration.get` is removed in Airflow 3.0; use `airflow.configuration.conf.get` instead
|
||||||
|
|
|
|
||||||
43 | dates.datetime_to_nano
|
77 | dates.datetime_to_nano
|
||||||
44 |
|
78 |
|
||||||
45 | TemporaryDirectory
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:79:6: AIR302 `airflow.configuration.getboolean` is removed in Airflow 3.0; use `airflow.configuration.conf.getboolean` instead
|
||||||
|
|
|
||||||
|
77 | dates.datetime_to_nano
|
||||||
|
78 |
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^^^^^^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:79:18: AIR302 `airflow.configuration.getfloat` is removed in Airflow 3.0; use `airflow.configuration.conf.getfloat` instead
|
||||||
|
|
|
||||||
|
77 | dates.datetime_to_nano
|
||||||
|
78 |
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^^^^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:79:28: AIR302 `airflow.configuration.getint` is removed in Airflow 3.0; use `airflow.configuration.conf.getint` instead
|
||||||
|
|
|
||||||
|
77 | dates.datetime_to_nano
|
||||||
|
78 |
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:79:36: AIR302 `airflow.configuration.has_option` is removed in Airflow 3.0; use `airflow.configuration.conf.has_option` instead
|
||||||
|
|
|
||||||
|
77 | dates.datetime_to_nano
|
||||||
|
78 |
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^^^^^^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:79:48: AIR302 `airflow.configuration.remove_option` is removed in Airflow 3.0; use `airflow.configuration.conf.remove_option` instead
|
||||||
|
|
|
||||||
|
77 | dates.datetime_to_nano
|
||||||
|
78 |
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^^^^^^^^^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:79:63: AIR302 `airflow.configuration.as_dict` is removed in Airflow 3.0; use `airflow.configuration.conf.as_dict` instead
|
||||||
|
|
|
||||||
|
77 | dates.datetime_to_nano
|
||||||
|
78 |
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^^^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:79:72: AIR302 `airflow.configuration.set` is removed in Airflow 3.0; use `airflow.configuration.conf.set` instead
|
||||||
|
|
|
||||||
|
77 | dates.datetime_to_nano
|
||||||
|
78 |
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
| ^^^ AIR302
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:81:1: AIR302 `airflow.secrets.local_filesystem.get_connection` is removed in Airflow 3.0; use `airflow.secrets.local_filesystem.load_connections_dict` instead
|
||||||
|
|
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
| ^^^^^^^^^^^^^^ AIR302
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:81:17: AIR302 `airflow.secrets.local_filesystem.load_connections` is removed in Airflow 3.0; use `airflow.secrets.local_filesystem.load_connections_dict` instead
|
||||||
|
|
|
||||||
|
79 | get, getboolean, getfloat, getint, has_option, remove_option, as_dict, set
|
||||||
|
80 |
|
||||||
|
81 | get_connection, load_connections
|
||||||
|
| ^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:84:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is removed in Airflow 3.0; use `airflow.sensors.external_task.ExternalTaskSensorLink` instead
|
||||||
|
|
|
||||||
|
84 | ExternalTaskSensorLink
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
85 | BashOperator
|
||||||
|
86 | BaseBranchOperator
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:85:1: AIR302 `airflow.operators.bash_operator.BashOperator` is removed in Airflow 3.0; use `airflow.operators.bash.BashOperator` instead
|
||||||
|
|
|
||||||
|
84 | ExternalTaskSensorLink
|
||||||
|
85 | BashOperator
|
||||||
|
| ^^^^^^^^^^^^ AIR302
|
||||||
|
86 | BaseBranchOperator
|
||||||
|
87 | EmptyOperator, DummyOperator
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:86:1: AIR302 `airflow.operators.branch_operator.BaseBranchOperator` is removed in Airflow 3.0; use `airflow.operators.branch.BaseBranchOperator` instead
|
||||||
|
|
|
||||||
|
84 | ExternalTaskSensorLink
|
||||||
|
85 | BashOperator
|
||||||
|
86 | BaseBranchOperator
|
||||||
| ^^^^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
46 | mkdirs
|
87 | EmptyOperator, DummyOperator
|
||||||
|
88 | dummy_operator.EmptyOperator
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:46:1: AIR302 `airflow.utils.file.mkdirs` is removed in Airflow 3.0; use `pendulum.today('UTC').add(days=-N, ...)` instead
|
AIR302_names.py:87:16: AIR302 `airflow.operators.dummy.DummyOperator` is removed in Airflow 3.0; use `airflow.operators.empty.EmptyOperator` instead
|
||||||
|
|
|
|
||||||
45 | TemporaryDirectory
|
85 | BashOperator
|
||||||
46 | mkdirs
|
86 | BaseBranchOperator
|
||||||
| ^^^^^^ AIR302
|
87 | EmptyOperator, DummyOperator
|
||||||
47 |
|
| ^^^^^^^^^^^^^ AIR302
|
||||||
48 | SHUTDOWN
|
88 | dummy_operator.EmptyOperator
|
||||||
|
89 | dummy_operator.DummyOperator
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:48:1: AIR302 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0
|
AIR302_names.py:88:16: AIR302 `airflow.operators.dummy_operator.EmptyOperator` is removed in Airflow 3.0; use `airflow.operators.empty.EmptyOperator` instead
|
||||||
|
|
|
|
||||||
46 | mkdirs
|
86 | BaseBranchOperator
|
||||||
47 |
|
87 | EmptyOperator, DummyOperator
|
||||||
48 | SHUTDOWN
|
88 | dummy_operator.EmptyOperator
|
||||||
| ^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^ AIR302
|
||||||
49 | terminating_states
|
89 | dummy_operator.DummyOperator
|
||||||
|
90 | EmailOperator
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:49:1: AIR302 `airflow.utils.state.terminating_states` is removed in Airflow 3.0
|
AIR302_names.py:89:16: AIR302 `airflow.operators.dummy_operator.DummyOperator` is removed in Airflow 3.0; use `airflow.operators.empty.EmptyOperator` instead
|
||||||
|
|
|
|
||||||
48 | SHUTDOWN
|
87 | EmptyOperator, DummyOperator
|
||||||
49 | terminating_states
|
88 | dummy_operator.EmptyOperator
|
||||||
|
89 | dummy_operator.DummyOperator
|
||||||
|
| ^^^^^^^^^^^^^ AIR302
|
||||||
|
90 | EmailOperator
|
||||||
|
91 | BaseSensorOperator
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:90:1: AIR302 `airflow.operators.email_operator.EmailOperator` is removed in Airflow 3.0; use `airflow.operators.email.EmailOperator` instead
|
||||||
|
|
|
||||||
|
88 | dummy_operator.EmptyOperator
|
||||||
|
89 | dummy_operator.DummyOperator
|
||||||
|
90 | EmailOperator
|
||||||
|
| ^^^^^^^^^^^^^ AIR302
|
||||||
|
91 | BaseSensorOperator
|
||||||
|
92 | DateTimeSensor
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:91:1: AIR302 `airflow.sensors.base_sensor_operator.BaseSensorOperator` is removed in Airflow 3.0; use `airflow.sensors.base.BaseSensorOperator` instead
|
||||||
|
|
|
||||||
|
89 | dummy_operator.DummyOperator
|
||||||
|
90 | EmailOperator
|
||||||
|
91 | BaseSensorOperator
|
||||||
| ^^^^^^^^^^^^^^^^^^ AIR302
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
92 | DateTimeSensor
|
||||||
|
93 | (ExternalTaskMarker, ExternalTaskSensor, ExternalTaskSensorLink)
|
||||||
|
|
|
|
||||||
|
|
||||||
AIR302_names.py:52:1: AIR302 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0
|
AIR302_names.py:92:1: AIR302 `airflow.sensors.date_time_sensor.DateTimeSensor` is removed in Airflow 3.0; use `airflow.sensors.date_time.DateTimeSensor` instead
|
||||||
|
|
|
|
||||||
52 | test_cycle
|
90 | EmailOperator
|
||||||
| ^^^^^^^^^^ AIR302
|
91 | BaseSensorOperator
|
||||||
|
92 | DateTimeSensor
|
||||||
|
| ^^^^^^^^^^^^^^ AIR302
|
||||||
|
93 | (ExternalTaskMarker, ExternalTaskSensor, ExternalTaskSensorLink)
|
||||||
|
94 | TimeDeltaSensor
|
||||||
|
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:93:2: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskMarker` is removed in Airflow 3.0; use `airflow.sensors.external_task.ExternalTaskMarker` instead
|
||||||
|
|
|
||||||
|
91 | BaseSensorOperator
|
||||||
|
92 | DateTimeSensor
|
||||||
|
93 | (ExternalTaskMarker, ExternalTaskSensor, ExternalTaskSensorLink)
|
||||||
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
94 | TimeDeltaSensor
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:93:22: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensor` is removed in Airflow 3.0; use `airflow.sensors.external_task.ExternalTaskSensor` instead
|
||||||
|
|
|
||||||
|
91 | BaseSensorOperator
|
||||||
|
92 | DateTimeSensor
|
||||||
|
93 | (ExternalTaskMarker, ExternalTaskSensor, ExternalTaskSensorLink)
|
||||||
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
94 | TimeDeltaSensor
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:93:42: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is removed in Airflow 3.0; use `airflow.sensors.external_task.ExternalTaskSensorLink` instead
|
||||||
|
|
|
||||||
|
91 | BaseSensorOperator
|
||||||
|
92 | DateTimeSensor
|
||||||
|
93 | (ExternalTaskMarker, ExternalTaskSensor, ExternalTaskSensorLink)
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
94 | TimeDeltaSensor
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:94:1: AIR302 `airflow.sensors.time_delta_sensor.TimeDeltaSensor` is removed in Airflow 3.0; use `airflow.sensors.time_delta.TimeDeltaSensor` instead
|
||||||
|
|
|
||||||
|
92 | DateTimeSensor
|
||||||
|
93 | (ExternalTaskMarker, ExternalTaskSensor, ExternalTaskSensorLink)
|
||||||
|
94 | TimeDeltaSensor
|
||||||
|
| ^^^^^^^^^^^^^^^ AIR302
|
||||||
|
95 |
|
||||||
|
96 | apply_defaults
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:96:1: AIR302 `airflow.utils.decorators.apply_defaults` is removed in Airflow 3.0; `apply_defaults` is now unconditionally done and can be safely removed.
|
||||||
|
|
|
||||||
|
94 | TimeDeltaSensor
|
||||||
|
95 |
|
||||||
|
96 | apply_defaults
|
||||||
|
| ^^^^^^^^^^^^^^ AIR302
|
||||||
|
97 |
|
||||||
|
98 | TemporaryDirectory
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:98:1: AIR302 `airflow.utils.file.TemporaryDirectory` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
96 | apply_defaults
|
||||||
|
97 |
|
||||||
|
98 | TemporaryDirectory
|
||||||
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
99 | mkdirs
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:99:1: AIR302 `airflow.utils.file.mkdirs` is removed in Airflow 3.0; use `pendulum.today('UTC').add(days=-N, ...)` instead
|
||||||
|
|
|
||||||
|
98 | TemporaryDirectory
|
||||||
|
99 | mkdirs
|
||||||
|
| ^^^^^^ AIR302
|
||||||
|
100 |
|
||||||
|
101 | chain
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:101:1: AIR302 `airflow.utils.helpers.chain` is removed in Airflow 3.0; use `airflow.models.baseoperator.chain` instead
|
||||||
|
|
|
||||||
|
99 | mkdirs
|
||||||
|
100 |
|
||||||
|
101 | chain
|
||||||
|
| ^^^^^ AIR302
|
||||||
|
102 | cross_downstream
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:102:1: AIR302 `airflow.utils.helpers.cross_downstream` is removed in Airflow 3.0; use `airflow.models.baseoperator.cross_downstream` instead
|
||||||
|
|
|
||||||
|
101 | chain
|
||||||
|
102 | cross_downstream
|
||||||
|
| ^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
103 |
|
||||||
|
104 | SHUTDOWN
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:104:1: AIR302 `airflow.utils.state.SHUTDOWN` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
102 | cross_downstream
|
||||||
|
103 |
|
||||||
|
104 | SHUTDOWN
|
||||||
|
| ^^^^^^^^ AIR302
|
||||||
|
105 | terminating_states
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:105:1: AIR302 `airflow.utils.state.terminating_states` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
104 | SHUTDOWN
|
||||||
|
105 | terminating_states
|
||||||
|
| ^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
106 |
|
||||||
|
107 | TriggerRule.DUMMY
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:107:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.DUMMY` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
105 | terminating_states
|
||||||
|
106 |
|
||||||
|
107 | TriggerRule.DUMMY
|
||||||
|
| ^^^^^ AIR302
|
||||||
|
108 | TriggerRule.NONE_FAILED_OR_SKIPPED
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:108:13: AIR302 `airflow.utils.trigger_rule.TriggerRule.NONE_FAILED_OR_SKIPPED` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
107 | TriggerRule.DUMMY
|
||||||
|
108 | TriggerRule.NONE_FAILED_OR_SKIPPED
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
109 |
|
||||||
|
110 | test_cycle
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:110:1: AIR302 `airflow.utils.dag_cycle_tester.test_cycle` is removed in Airflow 3.0
|
||||||
|
|
|
||||||
|
108 | TriggerRule.NONE_FAILED_OR_SKIPPED
|
||||||
|
109 |
|
||||||
|
110 | test_cycle
|
||||||
|
| ^^^^^^^^^^ AIR302
|
||||||
|
111 |
|
||||||
|
112 | has_access
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:112:1: AIR302 `airflow.www.auth.has_access` is removed in Airflow 3.0; use `airflow.www.auth.has_access_*` instead
|
||||||
|
|
|
||||||
|
110 | test_cycle
|
||||||
|
111 |
|
||||||
|
112 | has_access
|
||||||
|
| ^^^^^^^^^^ AIR302
|
||||||
|
113 | get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:113:1: AIR302 `airflow.www.utils.get_sensitive_variables_fields` is removed in Airflow 3.0; use `airflow.utils.log.secrets_masker.get_sensitive_variables_fields` instead
|
||||||
|
|
|
||||||
|
112 | has_access
|
||||||
|
113 | get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
|
|
||||||
|
|
||||||
|
AIR302_names.py:113:33: AIR302 `airflow.www.utils.should_hide_value_for_key` is removed in Airflow 3.0; use `airflow.utils.log.secrets_masker.should_hide_value_for_key` instead
|
||||||
|
|
|
||||||
|
112 | has_access
|
||||||
|
113 | get_sensitive_variables_fields, should_hide_value_for_key
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
||||||
|
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue