[`airflow`] Apply auto fixes to cases where the names have changed in Airflow 3 (`AIR302`) (#17553)

## Summary

<!-- What's the purpose of the change? What does it do, and why? -->

Apply auto fixes to cases where the names have changed in Airflow 3 in
AIR302 and split the huge test cases into different test cases based on
proivder

## Test Plan

<!-- How was it tested? -->

the test cases has been split into multiple for easier checking
This commit is contained in:
Wei Lee 2025-04-29 05:35:17 +09:00 committed by GitHub
parent f0868ac0c9
commit 504fa20057
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
53 changed files with 3316 additions and 2652 deletions

View File

@ -1,481 +0,0 @@
from __future__ import annotations
from airflow.api.auth.backend import basic_auth, kerberos_auth
from airflow.api.auth.backend.basic_auth import auth_current_user
from airflow.auth.managers.fab.api.auth.backend import (
kerberos_auth as backend_kerberos_auth,
)
from airflow.auth.managers.fab.fab_auth_manager import FabAuthManager
from airflow.auth.managers.fab.security_manager import override as fab_override
from airflow.config_templates.default_celery import DEFAULT_CELERY_CONFIG
from airflow.executors.celery_executor import CeleryExecutor, app
from airflow.executors.celery_kubernetes_executor import CeleryKubernetesExecutor
from airflow.executors.dask_executor import DaskExecutor
from airflow.executors.kubernetes_executor_types import (
ALL_NAMESPACES,
POD_EXECUTOR_DONE_KEY,
)
from airflow.hooks.dbapi import ConnectorProtocol, DbApiHook
from airflow.hooks.dbapi_hook import DbApiHook as DbApiHook2
from airflow.hooks.docker_hook import DockerHook
from airflow.hooks.druid_hook import DruidDbApiHook, DruidHook
from airflow.hooks.filesystem import FSHook
from airflow.hooks.hive_hooks import (
HIVE_QUEUE_PRIORITIES,
HiveCliHook,
HiveMetastoreHook,
HiveServer2Hook,
)
from airflow.hooks.http_hook import HttpHook
from airflow.hooks.jdbc_hook import JdbcHook, jaydebeapi
from airflow.hooks.mssql_hook import MsSqlHook
from airflow.hooks.mysql_hook import MySqlHook
from airflow.hooks.oracle_hook import OracleHook
from airflow.hooks.package_index import PackageIndexHook
from airflow.hooks.pig_hook import PigCliHook
from airflow.hooks.postgres_hook import PostgresHook
from airflow.hooks.presto_hook import PrestoHook
from airflow.hooks.S3_hook import S3Hook, provide_bucket_name
from airflow.hooks.samba_hook import SambaHook
from airflow.hooks.slack_hook import SlackHook
from airflow.hooks.sqlite_hook import SqliteHook
from airflow.hooks.subprocess import SubprocessHook, SubprocessResult, working_directory
from airflow.hooks.webhdfs_hook import WebHDFSHook
from airflow.hooks.zendesk_hook import ZendeskHook
from airflow.kubernetes.k8s_model import K8SModel, append_to_pod
from airflow.kubernetes.kube_client import (
_disable_verify_ssl,
_enable_tcp_keepalive,
get_kube_client,
)
from airflow.kubernetes.kubernetes_helper_functions import (
add_pod_suffix,
annotations_for_logging_task_metadata,
annotations_to_key,
create_pod_id,
get_logs_task_metadata,
rand_str,
)
from airflow.kubernetes.pod import Port, Resources
from airflow.kubernetes.pod_generator import (
PodDefaults,
PodGenerator,
PodGeneratorDeprecated,
datetime_to_label_safe_datestring,
extend_object_field,
label_safe_datestring_to_datetime,
make_safe_label_value,
merge_objects,
)
from airflow.kubernetes.pod_generator import (
add_pod_suffix as add_pod_suffix2,
)
from airflow.kubernetes.pod_generator import (
rand_str as rand_str2,
)
from airflow.kubernetes.pod_generator_deprecated import (
PodDefaults as PodDefaults3,
)
from airflow.kubernetes.pod_generator_deprecated import (
PodGenerator as PodGenerator2,
)
from airflow.kubernetes.pod_generator_deprecated import (
make_safe_label_value as make_safe_label_value2,
)
from airflow.kubernetes.pod_launcher import PodLauncher, PodStatus
from airflow.kubernetes.pod_launcher_deprecated import (
PodDefaults as PodDefaults2,
)
from airflow.kubernetes.pod_launcher_deprecated import (
PodLauncher as PodLauncher2,
)
from airflow.kubernetes.pod_launcher_deprecated import (
PodStatus as PodStatus2,
)
from airflow.kubernetes.pod_launcher_deprecated import (
get_kube_client as get_kube_client2,
)
from airflow.kubernetes.pod_runtime_info_env import PodRuntimeInfoEnv
from airflow.kubernetes.secret import K8SModel2, Secret
from airflow.kubernetes.volume import Volume
from airflow.kubernetes.volume_mount import VolumeMount
from airflow.macros.hive import closest_ds_partition, max_partition
from airflow.operators.bash import BashOperator
from airflow.operators.bash_operator import BashOperator as LegacyBashOperator
from airflow.operators.check_operator import (
CheckOperator,
IntervalCheckOperator,
SQLCheckOperator,
SQLIntervalCheckOperator,
SQLThresholdCheckOperator,
SQLValueCheckOperator,
ThresholdCheckOperator,
ValueCheckOperator,
)
from airflow.operators.datetime import BranchDateTimeOperator, target_times_as_dates
from airflow.operators.docker_operator import DockerOperator
from airflow.operators.druid_check_operator import DruidCheckOperator
from airflow.operators.dummy import DummyOperator, EmptyOperator
from airflow.operators.email import EmailOperator
from airflow.operators.email_operator import EmailOperator
from airflow.operators.gcs_to_s3 import GCSToS3Operator
from airflow.operators.google_api_to_s3_transfer import (
GoogleApiToS3Operator,
GoogleApiToS3Transfer,
)
from airflow.operators.hive_operator import HiveOperator
from airflow.operators.hive_stats_operator import HiveStatsCollectionOperator
from airflow.operators.hive_to_druid import HiveToDruidOperator, HiveToDruidTransfer
from airflow.operators.hive_to_mysql import HiveToMySqlOperator, HiveToMySqlTransfer
from airflow.operators.hive_to_samba_operator import HiveToSambaOperator
from airflow.operators.http_operator import SimpleHttpOperator
from airflow.operators.jdbc_operator import JdbcOperator
from airflow.operators.mssql_operator import MsSqlOperator
from airflow.operators.mssql_to_hive import MsSqlToHiveOperator, MsSqlToHiveTransfer
from airflow.operators.mysql_operator import MySqlOperator
from airflow.operators.mysql_to_hive import MySqlToHiveOperator, MySqlToHiveTransfer
from airflow.operators.oracle_operator import OracleOperator
from airflow.operators.papermill_operator import PapermillOperator
from airflow.operators.pig_operator import PigOperator
from airflow.operators.postgres_operator import Mapping, PostgresOperator
from airflow.operators.presto_check_operator import (
CheckOperator as SQLCheckOperator2,
)
from airflow.operators.presto_check_operator import (
IntervalCheckOperator as SQLIntervalCheckOperator2,
)
from airflow.operators.presto_check_operator import (
PrestoCheckOperator,
PrestoIntervalCheckOperator,
PrestoValueCheckOperator,
)
from airflow.operators.presto_check_operator import (
ValueCheckOperator as SQLValueCheckOperator2,
)
from airflow.operators.presto_to_mysql import (
PrestoToMySqlOperator,
PrestoToMySqlTransfer,
)
from airflow.operators.python import (
BranchPythonOperator,
PythonOperator,
PythonVirtualenvOperator,
ShortCircuitOperator,
)
from airflow.operators.redshift_to_s3_operator import (
RedshiftToS3Operator,
RedshiftToS3Transfer,
)
from airflow.operators.s3_file_transform_operator import S3FileTransformOperator
from airflow.operators.s3_to_hive_operator import S3ToHiveOperator, S3ToHiveTransfer
from airflow.operators.s3_to_redshift_operator import (
S3ToRedshiftOperator,
S3ToRedshiftTransfer,
)
from airflow.operators.slack_operator import SlackAPIOperator, SlackAPIPostOperator
from airflow.operators.sql import (
BaseSQLOperator,
BranchSQLOperator,
SQLTableCheckOperator,
_convert_to_float_if_possible,
parse_boolean,
)
from airflow.operators.sql import (
SQLCheckOperator as SQLCheckOperator3,
)
from airflow.operators.sql import (
SQLColumnCheckOperator as SQLColumnCheckOperator2,
)
from airflow.operators.sql import (
SQLIntervalCheckOperator as SQLIntervalCheckOperator3,
)
from airflow.operators.sql import (
SQLThresholdCheckOperator as SQLThresholdCheckOperator2,
)
from airflow.operators.sql import (
SQLValueCheckOperator as SQLValueCheckOperator3,
)
from airflow.operators.sqlite_operator import SqliteOperator
from airflow.operators.trigger_dagrun import TriggerDagRunOperator
from airflow.operators.weekday import BranchDayOfWeekOperator
from airflow.sensors import filesystem
from airflow.sensors.date_time import DateTimeSensor, DateTimeSensorAsync
from airflow.sensors.date_time_sensor import DateTimeSensor
from airflow.sensors.external_task import (
ExternalTaskMarker,
ExternalTaskSensor,
ExternalTaskSensorLink,
)
from airflow.sensors.filesystem import FileSensor
from airflow.sensors.hive_partition_sensor import HivePartitionSensor
from airflow.sensors.http_sensor import HttpSensor
from airflow.sensors.metastore_partition_sensor import MetastorePartitionSensor
from airflow.sensors.named_hive_partition_sensor import NamedHivePartitionSensor
from airflow.sensors.sql import SqlSensor
from airflow.sensors.sql_sensor import SqlSensor2
from airflow.sensors.time_delta import TimeDeltaSensor, TimeDeltaSensorAsync, WaitSensor
from airflow.sensors.time_sensor import TimeSensor, TimeSensorAsync
from airflow.sensors.web_hdfs_sensor import WebHdfsSensor
from airflow.sensors.weekday import DayOfWeekSensor
from airflow.triggers.external_task import DagStateTrigger, WorkflowTrigger
from airflow.triggers.file import FileTrigger
from airflow.triggers.temporal import DateTimeTrigger, TimeDeltaTrigger
from airflow.www.security import FabAirflowSecurityManagerOverride
# apache-airflow-providers-amazon
provide_bucket_name()
GCSToS3Operator()
GoogleApiToS3Operator()
GoogleApiToS3Transfer()
RedshiftToS3Operator()
RedshiftToS3Transfer()
S3FileTransformOperator()
S3Hook()
SSQLTableCheckOperator3KeySensor()
S3ToRedshiftOperator()
S3ToRedshiftTransfer()
# apache-airflow-providers-celery
DEFAULT_CELERY_CONFIG
app
CeleryExecutor()
CeleryKubernetesExecutor()
# apache-airflow-providers-common-sql
_convert_to_float_if_possible()
parse_boolean()
BaseSQLOperator()
BashOperator()
LegacyBashOperator()
BranchSQLOperator()
CheckOperator()
ConnectorProtocol()
DbApiHook()
DbApiHook2()
IntervalCheckOperator()
PrestoCheckOperator()
PrestoIntervalCheckOperator()
PrestoValueCheckOperator()
SQLCheckOperator()
SQLCheckOperator2()
SQLCheckOperator3()
SQLColumnCheckOperator2()
SQLIntervalCheckOperator()
SQLIntervalCheckOperator2()
SQLIntervalCheckOperator3()
SQLTableCheckOperator()
SQLThresholdCheckOperator()
SQLThresholdCheckOperator2()
SQLValueCheckOperator()
SQLValueCheckOperator2()
SQLValueCheckOperator3()
SqlSensor()
SqlSensor2()
ThresholdCheckOperator()
ValueCheckOperator()
# apache-airflow-providers-daskexecutor
DaskExecutor()
# apache-airflow-providers-docker
DockerHook()
DockerOperator()
# apache-airflow-providers-apache-druid
DruidDbApiHook()
DruidHook()
DruidCheckOperator()
# apache-airflow-providers-apache-hdfs
WebHDFSHook()
WebHdfsSensor()
# apache-airflow-providers-apache-hive
HIVE_QUEUE_PRIORITIES
closest_ds_partition()
max_partition()
HiveCliHook()
HiveMetastoreHook()
HiveOperator()
HivePartitionSensor()
HiveServer2Hook()
HiveStatsCollectionOperator()
HiveToDruidOperator()
HiveToDruidTransfer()
HiveToSambaOperator()
S3ToHiveOperator()
S3ToHiveTransfer()
MetastorePartitionSensor()
NamedHivePartitionSensor()
# apache-airflow-providers-http
HttpHook()
HttpSensor()
SimpleHttpOperator()
# apache-airflow-providers-jdbc
jaydebeapi
JdbcHook()
JdbcOperator()
# apache-airflow-providers-fab
basic_auth.CLIENT_AUTH
basic_auth.init_app
basic_auth.auth_current_user
basic_auth.requires_authentication
kerberos_auth.log
kerberos_auth.CLIENT_AUTH
kerberos_auth.find_user
kerberos_auth.init_app
kerberos_auth.requires_authentication
auth_current_user
backend_kerberos_auth
fab_override
FabAuthManager()
FabAirflowSecurityManagerOverride()
# check whether attribute access
basic_auth.auth_current_user
# apache-airflow-providers-cncf-kubernetes
ALL_NAMESPACES
POD_EXECUTOR_DONE_KEY
_disable_verify_ssl()
_enable_tcp_keepalive()
append_to_pod()
annotations_for_logging_task_metadata()
annotations_to_key()
create_pod_id()
datetime_to_label_safe_datestring()
extend_object_field()
get_logs_task_metadata()
label_safe_datestring_to_datetime()
merge_objects()
Port()
Resources()
PodRuntimeInfoEnv()
PodGeneratorDeprecated()
Volume()
VolumeMount()
Secret()
add_pod_suffix()
add_pod_suffix2()
get_kube_client()
get_kube_client2()
make_safe_label_value()
make_safe_label_value2()
rand_str()
rand_str2()
K8SModel()
K8SModel2()
PodLauncher()
PodLauncher2()
PodStatus()
PodStatus2()
PodDefaults()
PodDefaults2()
PodDefaults3()
PodGenerator()
PodGenerator2()
# apache-airflow-providers-microsoft-mssql
MsSqlHook()
MsSqlOperator()
MsSqlToHiveOperator()
MsSqlToHiveTransfer()
# apache-airflow-providers-mysql
HiveToMySqlOperator()
HiveToMySqlTransfer()
MySqlHook()
MySqlOperator()
MySqlToHiveOperator()
MySqlToHiveTransfer()
PrestoToMySqlOperator()
PrestoToMySqlTransfer()
# apache-airflow-providers-oracle
OracleHook()
OracleOperator()
# apache-airflow-providers-papermill
PapermillOperator()
# apache-airflow-providers-apache-pig
PigCliHook()
PigOperator()
# apache-airflow-providers-postgres
Mapping
PostgresHook()
PostgresOperator()
# apache-airflow-providers-presto
PrestoHook()
# apache-airflow-providers-samba
SambaHook()
# apache-airflow-providers-slack
SlackHook()
SlackAPIOperator()
SlackAPIPostOperator()
# apache-airflow-providers-sqlite
SqliteHook()
SqliteOperator()
# apache-airflow-providers-zendesk
ZendeskHook()
# apache-airflow-providers-smtp
EmailOperator()
# apache-airflow-providers-standard
filesystem.FileSensor()
FileSensor()
TriggerDagRunOperator()
ExternalTaskMarker()
ExternalTaskSensor()
BranchDateTimeOperator()
BranchDayOfWeekOperator()
BranchPythonOperator()
DateTimeSensor()
DateTimeSensorAsync()
TimeSensor()
TimeDeltaSensor()
DayOfWeekSensor()
DummyOperator()
EmptyOperator()
ExternalTaskMarker()
ExternalTaskSensor()
ExternalTaskSensorLink()
FileSensor()
FileTrigger()
FSHook()
PackageIndexHook()
SubprocessHook()
ShortCircuitOperator()
TimeDeltaSensor()
TimeSensor()
TriggerDagRunOperator()
WorkflowTrigger()
PythonOperator()
PythonVirtualenvOperator()
DagStateTrigger()
FileTrigger()
DateTimeTrigger()
TimeDeltaTrigger()
SubprocessResult()
SubprocessHook()
TimeDeltaSensor()
TimeDeltaSensorAsync()
WaitSensor()
TimeSensor()
TimeSensorAsync()
BranchDateTimeOperator()
working_directory()
target_times_as_dates()

View File

@ -0,0 +1,39 @@
from __future__ import annotations
from airflow.hooks.S3_hook import (
S3Hook,
provide_bucket_name,
)
from airflow.operators.gcs_to_s3 import GCSToS3Operator
from airflow.operators.google_api_to_s3_transfer import (
GoogleApiToS3Operator,
GoogleApiToS3Transfer,
)
from airflow.operators.redshift_to_s3_operator import (
RedshiftToS3Operator,
RedshiftToS3Transfer,
)
from airflow.operators.s3_file_transform_operator import S3FileTransformOperator
from airflow.operators.s3_to_redshift_operator import (
S3ToRedshiftOperator,
S3ToRedshiftTransfer,
)
from airflow.sensors.s3_key_sensor import S3KeySensor
S3Hook()
provide_bucket_name()
GCSToS3Operator()
GoogleApiToS3Operator()
GoogleApiToS3Transfer()
RedshiftToS3Operator()
RedshiftToS3Transfer()
S3FileTransformOperator()
S3ToRedshiftOperator()
S3ToRedshiftTransfer()
S3KeySensor()

View File

@ -0,0 +1,12 @@
from __future__ import annotations
from airflow.config_templates.default_celery import DEFAULT_CELERY_CONFIG
from airflow.executors.celery_executor import (
CeleryExecutor,
app,
)
DEFAULT_CELERY_CONFIG
app
CeleryExecutor()

View File

@ -0,0 +1,129 @@
from __future__ import annotations
from airflow.hooks.dbapi import (
ConnectorProtocol,
DbApiHook,
)
from airflow.hooks.dbapi_hook import DbApiHook
from airflow.operators.check_operator import SQLCheckOperator
ConnectorProtocol()
DbApiHook()
SQLCheckOperator()
from airflow.operators.check_operator import CheckOperator
from airflow.operators.sql import SQLCheckOperator
SQLCheckOperator()
CheckOperator()
from airflow.operators.druid_check_operator import CheckOperator
CheckOperator()
from airflow.operators.presto_check_operator import CheckOperator
CheckOperator()
from airflow.operators.check_operator import (
IntervalCheckOperator,
SQLIntervalCheckOperator,
)
from airflow.operators.druid_check_operator import DruidCheckOperator
from airflow.operators.presto_check_operator import PrestoCheckOperator
DruidCheckOperator()
PrestoCheckOperator()
IntervalCheckOperator()
SQLIntervalCheckOperator()
from airflow.operators.presto_check_operator import (
IntervalCheckOperator,
PrestoIntervalCheckOperator,
)
from airflow.operators.sql import SQLIntervalCheckOperator
IntervalCheckOperator()
SQLIntervalCheckOperator()
PrestoIntervalCheckOperator()
from airflow.operators.check_operator import (
SQLThresholdCheckOperator,
ThresholdCheckOperator,
)
SQLThresholdCheckOperator()
ThresholdCheckOperator()
from airflow.operators.sql import SQLThresholdCheckOperator
SQLThresholdCheckOperator()
from airflow.operators.check_operator import (
SQLValueCheckOperator,
ValueCheckOperator,
)
SQLValueCheckOperator()
ValueCheckOperator()
from airflow.operators.presto_check_operator import (
PrestoValueCheckOperator,
ValueCheckOperator,
)
from airflow.operators.sql import SQLValueCheckOperator
SQLValueCheckOperator()
ValueCheckOperator()
PrestoValueCheckOperator()
from airflow.operators.sql import (
BaseSQLOperator,
BranchSQLOperator,
SQLColumnCheckOperator,
SQLTablecheckOperator,
_convert_to_float_if_possible,
parse_boolean,
)
BaseSQLOperator()
BranchSQLOperator()
SQLTablecheckOperator()
SQLColumnCheckOperator()
_convert_to_float_if_possible()
parse_boolean()
from airflow.sensors.sql import SqlSensor
SqlSensor()
from airflow.sensors.sql_sensor import SqlSensor
SqlSensor()
from airflow.operators.jdbc_operator import JdbcOperator
from airflow.operators.mssql_operator import MsSqlOperator
from airflow.operators.mysql_operator import MySqlOperator
from airflow.operators.oracle_operator import OracleOperator
from airflow.operators.postgres_operator import PostgresOperator
from airflow.operators.sqlite_operator import SqliteOperator
JdbcOperator()
MsSqlOperator()
MySqlOperator()
OracleOperator()
PostgresOperator()
SqliteOperator()

View File

@ -0,0 +1,5 @@
from __future__ import annotations
from airflow.executors.dask_executor import DaskExecutor
DaskExecutor()

View File

@ -0,0 +1,7 @@
from __future__ import annotations
from airflow.hooks.docker_hook import DockerHook
from airflow.operators.docker_operator import DockerOperator
DockerHook()
DockerOperator()

View File

@ -0,0 +1,16 @@
from __future__ import annotations
from airflow.hooks.druid_hook import (
DruidDbApiHook,
DruidHook,
)
from airflow.operators.hive_to_druid import (
HiveToDruidOperator,
HiveToDruidTransfer,
)
DruidDbApiHook()
DruidHook()
HiveToDruidOperator()
HiveToDruidTransfer()

View File

@ -0,0 +1,55 @@
from __future__ import annotations
from airflow.api.auth.backend.basic_auth import (
CLIENT_AUTH,
auth_current_user,
init_app,
requires_authentication,
)
CLIENT_AUTH
init_app()
auth_current_user()
requires_authentication()
from airflow.api.auth.backend.kerberos_auth import (
CLIENT_AUTH,
find_user,
init_app,
log,
requires_authentication,
)
log()
CLIENT_AUTH
find_user()
init_app()
requires_authentication()
from airflow.auth.managers.fab.api.auth.backend.kerberos_auth import (
CLIENT_AUTH,
find_user,
init_app,
log,
requires_authentication,
)
log()
CLIENT_AUTH
find_user()
init_app()
requires_authentication()
from airflow.auth.managers.fab.fab_auth_manager import FabAuthManager
from airflow.auth.managers.fab.security_manager.override import (
MAX_NUM_DATABASE_USER_SESSIONS,
FabAirflowSecurityManagerOverride,
)
FabAuthManager()
MAX_NUM_DATABASE_USER_SESSIONS
FabAirflowSecurityManagerOverride()
from airflow.www.security import FabAirflowSecurityManagerOverride
FabAirflowSecurityManagerOverride()

View File

@ -0,0 +1,7 @@
from __future__ import annotations
from airflow.hooks.webhdfs_hook import WebHDFSHook
from airflow.sensors.web_hdfs_sensor import WebHdfsSensor
WebHDFSHook()
WebHdfsSensor()

View File

@ -0,0 +1,66 @@
from __future__ import annotations
from airflow.hooks.hive_hooks import (
HIVE_QUEUE_PRIORITIES,
HiveCliHook,
HiveMetastoreHook,
HiveServer2Hook,
)
from airflow.macros.hive import (
closest_ds_partition,
max_partition,
)
from airflow.operators.hive_operator import HiveOperator
from airflow.operators.hive_stats_operator import HiveStatsCollectionOperator
from airflow.operators.hive_to_mysql import (
HiveToMySqlOperator,
HiveToMySqlTransfer,
)
from airflow.operators.hive_to_samba_operator import HiveToSambaOperator
from airflow.operators.mssql_to_hive import (
MsSqlToHiveOperator,
MsSqlToHiveTransfer,
)
from airflow.operators.mysql_to_hive import (
MySqlToHiveOperator,
MySqlToHiveTransfer,
)
from airflow.operators.s3_to_hive_operator import (
S3ToHiveOperator,
S3ToHiveTransfer,
)
from airflow.sensors.hive_partition_sensor import HivePartitionSensor
from airflow.sensors.metastore_partition_sensor import MetastorePartitionSensor
from airflow.sensors.named_hive_partition_sensor import NamedHivePartitionSensor
closest_ds_partition()
max_partition()
HiveCliHook()
HiveMetastoreHook()
HiveServer2Hook()
HIVE_QUEUE_PRIORITIES
HiveOperator()
HiveStatsCollectionOperator()
HiveToMySqlOperator()
HiveToMySqlTransfer()
HiveToSambaOperator()
MsSqlToHiveOperator()
MsSqlToHiveTransfer()
MySqlToHiveOperator()
MySqlToHiveTransfer()
S3ToHiveOperator()
S3ToHiveTransfer()
HivePartitionSensor()
MetastorePartitionSensor()
NamedHivePartitionSensor()

View File

@ -0,0 +1,9 @@
from __future__ import annotations
from airflow.hooks.http_hook import HttpHook
from airflow.operators.http_operator import SimpleHttpOperator
from airflow.sensors.http_sensor import HttpSensor
HttpHook()
SimpleHttpOperator()
HttpSensor()

View File

@ -0,0 +1,9 @@
from __future__ import annotations
from airflow.hooks.jdbc_hook import (
JdbcHook,
jaydebeapi,
)
JdbcHook()
jaydebeapi()

View File

@ -0,0 +1,117 @@
from __future__ import annotations
from airflow.executors.kubernetes_executor_types import (
ALL_NAMESPACES,
POD_EXECUTOR_DONE_KEY,
)
from airflow.kubernetes.k8s_model import (
K8SModel,
append_to_pod,
)
from airflow.kubernetes.kube_client import (
_disable_verify_ssl,
_enable_tcp_keepalive,
get_kube_client,
)
from airflow.kubernetes.kubernetes_helper_functions import (
add_pod_suffix,
annotations_for_logging_task_metadata,
annotations_to_key,
create_pod_id,
get_logs_task_metadata,
rand_str,
)
from airflow.kubernetes.pod import (
Port,
Resources,
)
ALL_NAMESPACES
POD_EXECUTOR_DONE_KEY
K8SModel()
append_to_pod()
_disable_verify_ssl()
_enable_tcp_keepalive()
get_kube_client()
add_pod_suffix()
create_pod_id()
annotations_for_logging_task_metadata()
annotations_to_key()
get_logs_task_metadata()
rand_str()
Port()
Resources()
from airflow.kubernetes.pod_generator import (
PodDefaults,
PodGenerator,
PodGeneratorDeprecated,
add_pod_suffix,
datetime_to_label_safe_datestring,
extend_object_field,
label_safe_datestring_to_datetime,
make_safe_label_value,
merge_objects,
rand_str,
)
datetime_to_label_safe_datestring()
extend_object_field()
label_safe_datestring_to_datetime()
make_safe_label_value()
merge_objects()
PodGenerator()
PodDefaults()
PodGeneratorDeprecated()
add_pod_suffix()
rand_str()
from airflow.kubernetes.pod_generator_deprecated import (
PodDefaults,
PodGenerator,
make_safe_label_value,
)
from airflow.kubernetes.pod_launcher import (
PodLauncher,
PodStatus,
)
PodDefaults()
PodGenerator()
make_safe_label_value()
PodLauncher()
PodStatus()
from airflow.kubernetes.pod_launcher_deprecated import (
PodDefaults,
PodLauncher,
PodStatus,
get_kube_client,
)
from airflow.kubernetes.pod_runtime_info_env import PodRuntimeInfoEnv
from airflow.kubernetes.secret import (
K8SModel,
Secret,
)
from airflow.kubernetes.volume import Volume
from airflow.kubernetes.volume_mount import VolumeMount
PodDefaults()
PodLauncher()
PodStatus()
get_kube_client()
PodRuntimeInfoEnv()
K8SModel()
Secret()
Volume()
VolumeMount()

View File

@ -0,0 +1,11 @@
from __future__ import annotations
from airflow.hooks.mysql_hook import MySqlHook
from airflow.operators.presto_to_mysql import (
PrestoToMySqlOperator,
PrestoToMySqlTransfer,
)
MySqlHook()
PrestoToMySqlOperator()
PrestoToMySqlTransfer()

View File

@ -0,0 +1,5 @@
from __future__ import annotations
from airflow.hooks.oracle_hook import OracleHook
OracleHook()

View File

@ -0,0 +1,5 @@
from __future__ import annotations
from airflow.operators.papermill_operator import PapermillOperator
PapermillOperator()

View File

@ -0,0 +1,7 @@
from __future__ import annotations
from airflow.hooks.pig_hook import PigCliHook
from airflow.operators.pig_operator import PigOperator
PigCliHook()
PigOperator()

View File

@ -0,0 +1,7 @@
from __future__ import annotations
from airflow.hooks.postgres_hook import PostgresHook
from airflow.operators.postgres_operator import Mapping
PostgresHook()
Mapping()

View File

@ -0,0 +1,5 @@
from __future__ import annotations
from airflow.hooks.presto_hook import PrestoHook
PrestoHook()

View File

@ -0,0 +1,5 @@
from __future__ import annotations
from airflow.hooks.samba_hook import SambaHook
SambaHook()

View File

@ -0,0 +1,8 @@
from __future__ import annotations
from airflow.hooks.slack_hook import SlackHook
from airflow.operators.slack_operator import SlackAPIOperator, SlackAPIPostOperator
SlackHook()
SlackAPIOperator()
SlackAPIPostOperator()

View File

@ -0,0 +1,9 @@
from __future__ import annotations
from airflow.operators.email_operator import EmailOperator
EmailOperator()
from airflow.operators.email import EmailOperator
EmailOperator()

View File

@ -0,0 +1,5 @@
from __future__ import annotations
from airflow.hooks.sqlite_hook import SqliteHook
SqliteHook()

View File

@ -0,0 +1,49 @@
from __future__ import annotations
from airflow.operators.bash_operator import BashOperator
from airflow.operators.dagrun_operator import (
TriggerDagRunLink,
TriggerDagRunOperator,
)
from airflow.operators.dummy import (
DummyOperator,
EmptyOperator,
)
from airflow.operators.latest_only_operator import LatestOnlyOperator
from airflow.operators.python_operator import (
BranchPythonOperator,
PythonOperator,
PythonVirtualenvOperator,
ShortCircuitOperator,
)
from airflow.sensors.external_task_sensor import (
ExternalTaskMarker,
ExternalTaskSensor,
ExternalTaskSensorLink,
)
BashOperator()
TriggerDagRunLink()
TriggerDagRunOperator()
DummyOperator()
EmptyOperator()
LatestOnlyOperator()
BranchPythonOperator()
PythonOperator()
PythonVirtualenvOperator()
ShortCircuitOperator()
ExternalTaskMarker()
ExternalTaskSensor()
ExternalTaskSensorLink()
from airflow.operators.dummy_operator import (
DummyOperator,
EmptyOperator,
)
DummyOperator()
EmptyOperator()

View File

@ -0,0 +1,5 @@
from __future__ import annotations
from airflow.hooks.zendesk_hook import ZendeskHook
ZendeskHook()

View File

@ -4,7 +4,7 @@ use ruff_python_ast::{Expr, ExprName, StmtTry};
use ruff_python_semantic::Exceptions;
use ruff_python_semantic::SemanticModel;
#[derive(Debug, Clone, Eq, PartialEq)]
#[derive(Clone, Debug, Eq, PartialEq)]
pub(crate) enum Replacement {
None,
Name(&'static str),
@ -19,7 +19,7 @@ pub(crate) enum Replacement {
},
}
#[derive(Debug, Eq, PartialEq)]
#[derive(Clone, Debug, Eq, PartialEq)]
pub(crate) enum ProviderReplacement {
None,
ProviderName {
@ -27,9 +27,15 @@ pub(crate) enum ProviderReplacement {
provider: &'static str,
version: &'static str,
},
SourceModuleMovedToProvider {
name: String,
AutoImport {
module: &'static str,
name: &'static str,
provider: &'static str,
version: &'static str,
},
SourceModuleMovedToProvider {
module: &'static str,
name: String,
provider: &'static str,
version: &'static str,
},

View File

@ -23,7 +23,29 @@ mod tests {
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_class_attribute.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_airflow_plugin.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_context.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_amazon.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_celery.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_common_sql.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_daskexecutor.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_druid.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_fab.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_hdfs.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_hive.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_http.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_jdbc.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_kubernetes.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_mysql.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_oracle.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_papermill.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_pig.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_postgres.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_presto.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_samba.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_slack.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_smtp.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_sqlite.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_zendesk.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_standard.py"))]
#[test_case(Rule::Airflow3SuggestedUpdate, Path::new("AIR311_args.py"))]
#[test_case(Rule::Airflow3SuggestedUpdate, Path::new("AIR311_names.py"))]
#[test_case(Rule::Airflow3SuggestedToMoveToProvider, Path::new("AIR312.py"))]

View File

@ -49,14 +49,21 @@ impl Violation for Airflow3SuggestedToMoveToProvider {
provider,
version: _,
}
| ProviderReplacement::AutoImport {
name: _,
module: _,
provider,
version: _,
}
| ProviderReplacement::SourceModuleMovedToProvider {
name: _,
module: _,
provider,
version: _,
} => {
format!("`{deprecated}` is deprecated and moved into `{provider}` provider in Airflow 3.0; \
It still works in Airflow 3.0 but is expected to be removed in a future version."
format!(
"`{deprecated}` is deprecated and moved into `{provider}` provider in Airflow 3.0; \
It still works in Airflow 3.0 but is expected to be removed in a future version."
)
}
}
@ -75,6 +82,14 @@ impl Violation for Airflow3SuggestedToMoveToProvider {
"Install `apache-airflow-providers-{provider}>={version}` and use `{name}` instead."
))
},
ProviderReplacement::AutoImport {
module,
name,
provider,
version,
} => {
Some(format!("Install `apache-airflow-providers-{provider}>={version}` and use `{module}.{name}` instead."))
},
ProviderReplacement::SourceModuleMovedToProvider {
module,
name,

View File

@ -0,0 +1,113 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_amazon.py:23:1: AIR302 `airflow.hooks.S3_hook.S3Hook` is moved into `amazon` provider in Airflow 3.0;
|
21 | from airflow.sensors.s3_key_sensor import S3KeySensor
22 |
23 | S3Hook()
| ^^^^^^ AIR302
24 | provide_bucket_name()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.hooks.s3.S3Hook` instead.
AIR302_amazon.py:24:1: AIR302 `airflow.hooks.S3_hook.provide_bucket_name` is moved into `amazon` provider in Airflow 3.0;
|
23 | S3Hook()
24 | provide_bucket_name()
| ^^^^^^^^^^^^^^^^^^^ AIR302
25 |
26 | GCSToS3Operator()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.hooks.s3.provide_bucket_name` instead.
AIR302_amazon.py:26:1: AIR302 `airflow.operators.gcs_to_s3.GCSToS3Operator` is moved into `amazon` provider in Airflow 3.0;
|
24 | provide_bucket_name()
25 |
26 | GCSToS3Operator()
| ^^^^^^^^^^^^^^^ AIR302
27 |
28 | GoogleApiToS3Operator()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.gcs_to_s3.GCSToS3Operator` instead.
AIR302_amazon.py:28:1: AIR302 `airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Operator` is moved into `amazon` provider in Airflow 3.0;
|
26 | GCSToS3Operator()
27 |
28 | GoogleApiToS3Operator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
29 | GoogleApiToS3Transfer()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.google_api_to_s3.GoogleApiToS3Operator` instead.
AIR302_amazon.py:29:1: AIR302 `airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Transfer` is moved into `amazon` provider in Airflow 3.0;
|
28 | GoogleApiToS3Operator()
29 | GoogleApiToS3Transfer()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
30 |
31 | RedshiftToS3Operator()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.google_api_to_s3.GoogleApiToS3Operator` instead.
AIR302_amazon.py:31:1: AIR302 `airflow.operators.redshift_to_s3_operator.RedshiftToS3Operator` is moved into `amazon` provider in Airflow 3.0;
|
29 | GoogleApiToS3Transfer()
30 |
31 | RedshiftToS3Operator()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
32 | RedshiftToS3Transfer()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.redshift_to_s3.RedshiftToS3Operator` instead.
AIR302_amazon.py:32:1: AIR302 `airflow.operators.redshift_to_s3_operator.RedshiftToS3Transfer` is moved into `amazon` provider in Airflow 3.0;
|
31 | RedshiftToS3Operator()
32 | RedshiftToS3Transfer()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
33 |
34 | S3FileTransformOperator()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.redshift_to_s3.RedshiftToS3Operator` instead.
AIR302_amazon.py:34:1: AIR302 `airflow.operators.s3_file_transform_operator.S3FileTransformOperator` is moved into `amazon` provider in Airflow 3.0;
|
32 | RedshiftToS3Transfer()
33 |
34 | S3FileTransformOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^ AIR302
35 |
36 | S3ToRedshiftOperator()
|
= help: Install `apache-airflow-providers-amazon>=3.0.0` and use `airflow.providers.amazon.aws.operators.s3.S3FileTransformOperator` instead.
AIR302_amazon.py:36:1: AIR302 `airflow.operators.s3_to_redshift_operator.S3ToRedshiftOperator` is moved into `amazon` provider in Airflow 3.0;
|
34 | S3FileTransformOperator()
35 |
36 | S3ToRedshiftOperator()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
37 | S3ToRedshiftTransfer()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.s3_to_redshift.S3ToRedshiftOperator` instead.
AIR302_amazon.py:37:1: AIR302 `airflow.operators.s3_to_redshift_operator.S3ToRedshiftTransfer` is moved into `amazon` provider in Airflow 3.0;
|
36 | S3ToRedshiftOperator()
37 | S3ToRedshiftTransfer()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
38 |
39 | S3KeySensor()
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.transfers.s3_to_redshift.S3ToRedshiftOperator` instead.
AIR302_amazon.py:39:1: AIR302 `airflow.sensors.s3_key_sensor.S3KeySensor` is moved into `amazon` provider in Airflow 3.0;
|
37 | S3ToRedshiftTransfer()
38 |
39 | S3KeySensor()
| ^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-amazon>=1.0.0` and use `airflow.providers.amazon.aws.sensors.s3.S3KeySensor` instead.

View File

@ -0,0 +1,31 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_celery.py:9:1: AIR302 `airflow.config_templates.default_celery.DEFAULT_CELERY_CONFIG` is moved into `celery` provider in Airflow 3.0;
|
7 | )
8 |
9 | DEFAULT_CELERY_CONFIG
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
10 |
11 | app
|
= help: Install `apache-airflow-providers-celery>=3.3.0` and use `airflow.providers.celery.executors.default_celery.DEFAULT_CELERY_CONFIG` instead.
AIR302_celery.py:11:1: AIR302 `airflow.executors.celery_executor.app` is moved into `celery` provider in Airflow 3.0;
|
9 | DEFAULT_CELERY_CONFIG
10 |
11 | app
| ^^^ AIR302
12 | CeleryExecutor()
|
= help: Install `apache-airflow-providers-celery>=3.3.0` and use `airflow.providers.celery.executors.celery_executor_utils.app` instead.
AIR302_celery.py:12:1: AIR302 `airflow.executors.celery_executor.CeleryExecutor` is moved into `celery` provider in Airflow 3.0;
|
11 | app
12 | CeleryExecutor()
| ^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-celery>=3.3.0` and use `airflow.providers.celery.executors.celery_executor.CeleryExecutor` instead.

View File

@ -0,0 +1,352 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_common_sql.py:10:1: AIR302 `airflow.hooks.dbapi.ConnectorProtocol` is moved into `common-sql` provider in Airflow 3.0;
|
8 | from airflow.operators.check_operator import SQLCheckOperator
9 |
10 | ConnectorProtocol()
| ^^^^^^^^^^^^^^^^^ AIR302
11 | DbApiHook()
12 | SQLCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.hooks.sql.ConnectorProtocol` instead.
AIR302_common_sql.py:11:1: AIR302 `airflow.hooks.dbapi_hook.DbApiHook` is moved into `common-sql` provider in Airflow 3.0;
|
10 | ConnectorProtocol()
11 | DbApiHook()
| ^^^^^^^^^ AIR302
12 | SQLCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.hooks.sql.DbApiHook` instead.
AIR302_common_sql.py:12:1: AIR302 `airflow.operators.check_operator.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
10 | ConnectorProtocol()
11 | DbApiHook()
12 | SQLCheckOperator()
| ^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead.
AIR302_common_sql.py:18:1: AIR302 `airflow.operators.sql.SQLCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
16 | from airflow.operators.sql import SQLCheckOperator
17 |
18 | SQLCheckOperator()
| ^^^^^^^^^^^^^^^^ AIR302
19 | CheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead.
AIR302_common_sql.py:19:1: AIR302 `airflow.operators.check_operator.CheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
18 | SQLCheckOperator()
19 | CheckOperator()
| ^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead.
AIR302_common_sql.py:24:1: AIR302 `airflow.operators.druid_check_operator.CheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
22 | from airflow.operators.druid_check_operator import CheckOperator
23 |
24 | CheckOperator()
| ^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead.
AIR302_common_sql.py:29:1: AIR302 `airflow.operators.presto_check_operator.CheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
27 | from airflow.operators.presto_check_operator import CheckOperator
28 |
29 | CheckOperator()
| ^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead.
AIR302_common_sql.py:39:1: AIR302 `airflow.operators.druid_check_operator.DruidCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
37 | from airflow.operators.presto_check_operator import PrestoCheckOperator
38 |
39 | DruidCheckOperator()
| ^^^^^^^^^^^^^^^^^^ AIR302
40 | PrestoCheckOperator()
41 | IntervalCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead.
AIR302_common_sql.py:40:1: AIR302 `airflow.operators.presto_check_operator.PrestoCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
39 | DruidCheckOperator()
40 | PrestoCheckOperator()
| ^^^^^^^^^^^^^^^^^^^ AIR302
41 | IntervalCheckOperator()
42 | SQLIntervalCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLCheckOperator` instead.
AIR302_common_sql.py:41:1: AIR302 `airflow.operators.check_operator.IntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
39 | DruidCheckOperator()
40 | PrestoCheckOperator()
41 | IntervalCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
42 | SQLIntervalCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead.
AIR302_common_sql.py:42:1: AIR302 `airflow.operators.check_operator.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
40 | PrestoCheckOperator()
41 | IntervalCheckOperator()
42 | SQLIntervalCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead.
AIR302_common_sql.py:51:1: AIR302 `airflow.operators.presto_check_operator.IntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
49 | from airflow.operators.sql import SQLIntervalCheckOperator
50 |
51 | IntervalCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
52 | SQLIntervalCheckOperator()
53 | PrestoIntervalCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead.
AIR302_common_sql.py:52:1: AIR302 `airflow.operators.sql.SQLIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
51 | IntervalCheckOperator()
52 | SQLIntervalCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
53 | PrestoIntervalCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead.
AIR302_common_sql.py:53:1: AIR302 `airflow.operators.presto_check_operator.PrestoIntervalCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
51 | IntervalCheckOperator()
52 | SQLIntervalCheckOperator()
53 | PrestoIntervalCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator` instead.
AIR302_common_sql.py:61:1: AIR302 `airflow.operators.check_operator.SQLThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
59 | )
60 |
61 | SQLThresholdCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
62 | ThresholdCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator` instead.
AIR302_common_sql.py:62:1: AIR302 `airflow.operators.check_operator.ThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
61 | SQLThresholdCheckOperator()
62 | ThresholdCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator` instead.
AIR302_common_sql.py:67:1: AIR302 `airflow.operators.sql.SQLThresholdCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
65 | from airflow.operators.sql import SQLThresholdCheckOperator
66 |
67 | SQLThresholdCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator` instead.
AIR302_common_sql.py:75:1: AIR302 `airflow.operators.check_operator.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
73 | )
74 |
75 | SQLValueCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
76 | ValueCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead.
AIR302_common_sql.py:76:1: AIR302 `airflow.operators.check_operator.ValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
75 | SQLValueCheckOperator()
76 | ValueCheckOperator()
| ^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead.
AIR302_common_sql.py:85:1: AIR302 `airflow.operators.sql.SQLValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
83 | from airflow.operators.sql import SQLValueCheckOperator
84 |
85 | SQLValueCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
86 | ValueCheckOperator()
87 | PrestoValueCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead.
AIR302_common_sql.py:86:1: AIR302 `airflow.operators.presto_check_operator.ValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
85 | SQLValueCheckOperator()
86 | ValueCheckOperator()
| ^^^^^^^^^^^^^^^^^^ AIR302
87 | PrestoValueCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead.
AIR302_common_sql.py:87:1: AIR302 `airflow.operators.presto_check_operator.PrestoValueCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
85 | SQLValueCheckOperator()
86 | ValueCheckOperator()
87 | PrestoValueCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLValueCheckOperator` instead.
AIR302_common_sql.py:99:1: AIR302 `airflow.operators.sql.BaseSQLOperator` is moved into `common-sql` provider in Airflow 3.0;
|
97 | )
98 |
99 | BaseSQLOperator()
| ^^^^^^^^^^^^^^^ AIR302
100 | BranchSQLOperator()
101 | SQLTablecheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.BaseSQLOperator` instead.
AIR302_common_sql.py:100:1: AIR302 `airflow.operators.sql.BranchSQLOperator` is moved into `common-sql` provider in Airflow 3.0;
|
99 | BaseSQLOperator()
100 | BranchSQLOperator()
| ^^^^^^^^^^^^^^^^^ AIR302
101 | SQLTablecheckOperator()
102 | SQLColumnCheckOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.BranchSQLOperator` instead.
AIR302_common_sql.py:101:1: AIR302 `airflow.operators.sql.SQLTablecheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
99 | BaseSQLOperator()
100 | BranchSQLOperator()
101 | SQLTablecheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
102 | SQLColumnCheckOperator()
103 | _convert_to_float_if_possible()
|
= help: Install `apache-airflow-providers-common-sql>=1.1.0` and use `airflow.providers.common.sql.operators.sql.SQLTablecheckOperator` instead.
AIR302_common_sql.py:102:1: AIR302 `airflow.operators.sql.SQLColumnCheckOperator` is moved into `common-sql` provider in Airflow 3.0;
|
100 | BranchSQLOperator()
101 | SQLTablecheckOperator()
102 | SQLColumnCheckOperator()
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
103 | _convert_to_float_if_possible()
104 | parse_boolean()
|
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql.SQLColumnCheckOperator` instead.
AIR302_common_sql.py:103:1: AIR302 `airflow.operators.sql._convert_to_float_if_possible` is moved into `common-sql` provider in Airflow 3.0;
|
101 | SQLTablecheckOperator()
102 | SQLColumnCheckOperator()
103 | _convert_to_float_if_possible()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
104 | parse_boolean()
|
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql._convert_to_float_if_possible` instead.
AIR302_common_sql.py:104:1: AIR302 `airflow.operators.sql.parse_boolean` is moved into `common-sql` provider in Airflow 3.0;
|
102 | SQLColumnCheckOperator()
103 | _convert_to_float_if_possible()
104 | parse_boolean()
| ^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.operators.sql.parse_boolean` instead.
AIR302_common_sql.py:109:1: AIR302 `airflow.sensors.sql.SqlSensor` is moved into `common-sql` provider in Airflow 3.0;
|
107 | from airflow.sensors.sql import SqlSensor
108 |
109 | SqlSensor()
| ^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.sensors.sql.SqlSensor` instead.
AIR302_common_sql.py:114:1: AIR302 `airflow.sensors.sql_sensor.SqlSensor` is moved into `common-sql` provider in Airflow 3.0;
|
112 | from airflow.sensors.sql_sensor import SqlSensor
113 |
114 | SqlSensor()
| ^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.0.0` and use `airflow.providers.common.sql.sensors.sql.SqlSensor` instead.
AIR302_common_sql.py:124:1: AIR302 `airflow.operators.jdbc_operator.JdbcOperator` is moved into `common-sql` provider in Airflow 3.0;
|
122 | from airflow.operators.sqlite_operator import SqliteOperator
123 |
124 | JdbcOperator()
| ^^^^^^^^^^^^ AIR302
125 | MsSqlOperator()
126 | MySqlOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
AIR302_common_sql.py:125:1: AIR302 `airflow.operators.mssql_operator.MsSqlOperator` is moved into `common-sql` provider in Airflow 3.0;
|
124 | JdbcOperator()
125 | MsSqlOperator()
| ^^^^^^^^^^^^^ AIR302
126 | MySqlOperator()
127 | OracleOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
AIR302_common_sql.py:126:1: AIR302 `airflow.operators.mysql_operator.MySqlOperator` is moved into `common-sql` provider in Airflow 3.0;
|
124 | JdbcOperator()
125 | MsSqlOperator()
126 | MySqlOperator()
| ^^^^^^^^^^^^^ AIR302
127 | OracleOperator()
128 | PostgresOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
AIR302_common_sql.py:127:1: AIR302 `airflow.operators.oracle_operator.OracleOperator` is moved into `common-sql` provider in Airflow 3.0;
|
125 | MsSqlOperator()
126 | MySqlOperator()
127 | OracleOperator()
| ^^^^^^^^^^^^^^ AIR302
128 | PostgresOperator()
129 | SqliteOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
AIR302_common_sql.py:128:1: AIR302 `airflow.operators.postgres_operator.PostgresOperator` is moved into `common-sql` provider in Airflow 3.0;
|
126 | MySqlOperator()
127 | OracleOperator()
128 | PostgresOperator()
| ^^^^^^^^^^^^^^^^ AIR302
129 | SqliteOperator()
|
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.
AIR302_common_sql.py:129:1: AIR302 `airflow.operators.sqlite_operator.SqliteOperator` is moved into `common-sql` provider in Airflow 3.0;
|
127 | OracleOperator()
128 | PostgresOperator()
129 | SqliteOperator()
| ^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-common-sql>=1.3.0` and use `airflow.providers.common.sql.operators.sql.SQLExecuteQueryOperator` instead.

View File

@ -0,0 +1,11 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_daskexecutor.py:5:1: AIR302 `airflow.executors.dask_executor.DaskExecutor` is moved into `daskexecutor` provider in Airflow 3.0;
|
3 | from airflow.executors.dask_executor import DaskExecutor
4 |
5 | DaskExecutor()
| ^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-daskexecutor>=1.0.0` and use `airflow.providers.daskexecutor.executors.dask_executor.DaskExecutor` instead.

View File

@ -0,0 +1,40 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_druid.py:12:1: AIR302 `airflow.hooks.druid_hook.DruidDbApiHook` is moved into `apache-druid` provider in Airflow 3.0;
|
10 | )
11 |
12 | DruidDbApiHook()
| ^^^^^^^^^^^^^^ AIR302
13 | DruidHook()
|
= help: Install `apache-airflow-providers-apache-druid>=1.0.0` and use `airflow.providers.apache.druid.hooks.druid.DruidDbApiHook` instead.
AIR302_druid.py:13:1: AIR302 `airflow.hooks.druid_hook.DruidHook` is moved into `apache-druid` provider in Airflow 3.0;
|
12 | DruidDbApiHook()
13 | DruidHook()
| ^^^^^^^^^ AIR302
14 |
15 | HiveToDruidOperator()
|
= help: Install `apache-airflow-providers-apache-druid>=1.0.0` and use `airflow.providers.apache.druid.hooks.druid.DruidHook` instead.
AIR302_druid.py:15:1: AIR302 `airflow.operators.hive_to_druid.HiveToDruidOperator` is moved into `apache-druid` provider in Airflow 3.0;
|
13 | DruidHook()
14 |
15 | HiveToDruidOperator()
| ^^^^^^^^^^^^^^^^^^^ AIR302
16 | HiveToDruidTransfer()
|
= help: Install `apache-airflow-providers-apache-druid>=1.0.0` and use `airflow.providers.apache.druid.transfers.hive_to_druid.HiveToDruidOperator` instead.
AIR302_druid.py:16:1: AIR302 `airflow.operators.hive_to_druid.HiveToDruidTransfer` is moved into `apache-druid` provider in Airflow 3.0;
|
15 | HiveToDruidOperator()
16 | HiveToDruidTransfer()
| ^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-apache-druid>=1.0.0` and use `airflow.providers.apache.druid.transfers.hive_to_druid.HiveToDruidOperator` instead.

View File

@ -0,0 +1,190 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_fab.py:10:1: AIR302 `airflow.api.auth.backend.basic_auth.CLIENT_AUTH` is moved into `fab` provider in Airflow 3.0;
|
8 | )
9 |
10 | CLIENT_AUTH
| ^^^^^^^^^^^ AIR302
11 | init_app()
12 | auth_current_user()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.basic_auth.CLIENT_AUTH` instead.
AIR302_fab.py:11:1: AIR302 `airflow.api.auth.backend.basic_auth.init_app` is moved into `fab` provider in Airflow 3.0;
|
10 | CLIENT_AUTH
11 | init_app()
| ^^^^^^^^ AIR302
12 | auth_current_user()
13 | requires_authentication()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.basic_auth.init_app` instead.
AIR302_fab.py:12:1: AIR302 `airflow.api.auth.backend.basic_auth.auth_current_user` is moved into `fab` provider in Airflow 3.0;
|
10 | CLIENT_AUTH
11 | init_app()
12 | auth_current_user()
| ^^^^^^^^^^^^^^^^^ AIR302
13 | requires_authentication()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.basic_auth.auth_current_user` instead.
AIR302_fab.py:13:1: AIR302 `airflow.api.auth.backend.basic_auth.requires_authentication` is moved into `fab` provider in Airflow 3.0;
|
11 | init_app()
12 | auth_current_user()
13 | requires_authentication()
| ^^^^^^^^^^^^^^^^^^^^^^^ AIR302
14 |
15 | from airflow.api.auth.backend.kerberos_auth import (
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.basic_auth.requires_authentication` instead.
AIR302_fab.py:23:1: AIR302 `airflow.api.auth.backend.kerberos_auth.log` is moved into `fab` provider in Airflow 3.0;
|
21 | )
22 |
23 | log()
| ^^^ AIR302
24 | CLIENT_AUTH
25 | find_user()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.log` instead.
AIR302_fab.py:24:1: AIR302 `airflow.api.auth.backend.kerberos_auth.CLIENT_AUTH` is moved into `fab` provider in Airflow 3.0;
|
23 | log()
24 | CLIENT_AUTH
| ^^^^^^^^^^^ AIR302
25 | find_user()
26 | init_app()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.CLIENT_AUTH` instead.
AIR302_fab.py:25:1: AIR302 `airflow.api.auth.backend.kerberos_auth.find_user` is moved into `fab` provider in Airflow 3.0;
|
23 | log()
24 | CLIENT_AUTH
25 | find_user()
| ^^^^^^^^^ AIR302
26 | init_app()
27 | requires_authentication()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.find_user` instead.
AIR302_fab.py:26:1: AIR302 `airflow.api.auth.backend.kerberos_auth.init_app` is moved into `fab` provider in Airflow 3.0;
|
24 | CLIENT_AUTH
25 | find_user()
26 | init_app()
| ^^^^^^^^ AIR302
27 | requires_authentication()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.init_app` instead.
AIR302_fab.py:27:1: AIR302 `airflow.api.auth.backend.kerberos_auth.requires_authentication` is moved into `fab` provider in Airflow 3.0;
|
25 | find_user()
26 | init_app()
27 | requires_authentication()
| ^^^^^^^^^^^^^^^^^^^^^^^ AIR302
28 |
29 | from airflow.auth.managers.fab.api.auth.backend.kerberos_auth import (
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.requires_authentication` instead.
AIR302_fab.py:37:1: AIR302 `airflow.auth.managers.fab.api.auth.backend.kerberos_auth.log` is moved into `fab` provider in Airflow 3.0;
|
35 | )
36 |
37 | log()
| ^^^ AIR302
38 | CLIENT_AUTH
39 | find_user()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.log` instead.
AIR302_fab.py:38:1: AIR302 `airflow.auth.managers.fab.api.auth.backend.kerberos_auth.CLIENT_AUTH` is moved into `fab` provider in Airflow 3.0;
|
37 | log()
38 | CLIENT_AUTH
| ^^^^^^^^^^^ AIR302
39 | find_user()
40 | init_app()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.CLIENT_AUTH` instead.
AIR302_fab.py:39:1: AIR302 `airflow.auth.managers.fab.api.auth.backend.kerberos_auth.find_user` is moved into `fab` provider in Airflow 3.0;
|
37 | log()
38 | CLIENT_AUTH
39 | find_user()
| ^^^^^^^^^ AIR302
40 | init_app()
41 | requires_authentication()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.find_user` instead.
AIR302_fab.py:40:1: AIR302 `airflow.auth.managers.fab.api.auth.backend.kerberos_auth.init_app` is moved into `fab` provider in Airflow 3.0;
|
38 | CLIENT_AUTH
39 | find_user()
40 | init_app()
| ^^^^^^^^ AIR302
41 | requires_authentication()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.init_app` instead.
AIR302_fab.py:41:1: AIR302 `airflow.auth.managers.fab.api.auth.backend.kerberos_auth.requires_authentication` is moved into `fab` provider in Airflow 3.0;
|
39 | find_user()
40 | init_app()
41 | requires_authentication()
| ^^^^^^^^^^^^^^^^^^^^^^^ AIR302
42 |
43 | from airflow.auth.managers.fab.fab_auth_manager import FabAuthManager
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth.requires_authentication` instead.
AIR302_fab.py:49:1: AIR302 `airflow.auth.managers.fab.fab_auth_manager.FabAuthManager` is moved into `fab` provider in Airflow 3.0;
|
47 | )
48 |
49 | FabAuthManager()
| ^^^^^^^^^^^^^^ AIR302
50 | MAX_NUM_DATABASE_USER_SESSIONS
51 | FabAirflowSecurityManagerOverride()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager` instead.
AIR302_fab.py:50:1: AIR302 `airflow.auth.managers.fab.security_manager.override.MAX_NUM_DATABASE_USER_SESSIONS` is moved into `fab` provider in Airflow 3.0;
|
49 | FabAuthManager()
50 | MAX_NUM_DATABASE_USER_SESSIONS
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
51 | FabAirflowSecurityManagerOverride()
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.security_manager.override.MAX_NUM_DATABASE_USER_SESSIONS` instead.
AIR302_fab.py:51:1: AIR302 `airflow.auth.managers.fab.security_manager.override.FabAirflowSecurityManagerOverride` is moved into `fab` provider in Airflow 3.0;
|
49 | FabAuthManager()
50 | MAX_NUM_DATABASE_USER_SESSIONS
51 | FabAirflowSecurityManagerOverride()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
52 |
53 | from airflow.www.security import FabAirflowSecurityManagerOverride
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride` instead.
AIR302_fab.py:55:1: AIR302 `airflow.www.security.FabAirflowSecurityManagerOverride` is moved into `fab` provider in Airflow 3.0;
|
53 | from airflow.www.security import FabAirflowSecurityManagerOverride
54 |
55 | FabAirflowSecurityManagerOverride()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-fab>=1.0.0` and use `airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride` instead.

View File

@ -0,0 +1,20 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_hdfs.py:6:1: AIR302 `airflow.hooks.webhdfs_hook.WebHDFSHook` is moved into `apache-hdfs` provider in Airflow 3.0;
|
4 | from airflow.sensors.web_hdfs_sensor import WebHdfsSensor
5 |
6 | WebHDFSHook()
| ^^^^^^^^^^^ AIR302
7 | WebHdfsSensor()
|
= help: Install `apache-airflow-providers-apache-hdfs>=1.0.0` and use `airflow.providers.apache.hdfs.hooks.webhdfs.WebHDFSHook` instead.
AIR302_hdfs.py:7:1: AIR302 `airflow.sensors.web_hdfs_sensor.WebHdfsSensor` is moved into `apache-hdfs` provider in Airflow 3.0;
|
6 | WebHDFSHook()
7 | WebHdfsSensor()
| ^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-apache-hdfs>=1.0.0` and use `airflow.providers.apache.hdfs.sensors.web_hdfs.WebHdfsSensor` instead.

View File

@ -0,0 +1,208 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_hive.py:36:1: AIR302 `airflow.macros.hive.closest_ds_partition` is moved into `apache-hive` provider in Airflow 3.0;
|
34 | from airflow.sensors.named_hive_partition_sensor import NamedHivePartitionSensor
35 |
36 | closest_ds_partition()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
37 | max_partition()
|
= help: Install `apache-airflow-providers-apache-hive>=5.1.0` and use `airflow.providers.apache.hive.macros.hive.closest_ds_partition` instead.
AIR302_hive.py:37:1: AIR302 `airflow.macros.hive.max_partition` is moved into `apache-hive` provider in Airflow 3.0;
|
36 | closest_ds_partition()
37 | max_partition()
| ^^^^^^^^^^^^^ AIR302
38 |
39 | HiveCliHook()
|
= help: Install `apache-airflow-providers-apache-hive>=5.1.0` and use `airflow.providers.apache.hive.macros.hive.max_partition` instead.
AIR302_hive.py:39:1: AIR302 `airflow.hooks.hive_hooks.HiveCliHook` is moved into `apache-hive` provider in Airflow 3.0;
|
37 | max_partition()
38 |
39 | HiveCliHook()
| ^^^^^^^^^^^ AIR302
40 | HiveMetastoreHook()
41 | HiveServer2Hook()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HiveCliHook` instead.
AIR302_hive.py:40:1: AIR302 `airflow.hooks.hive_hooks.HiveMetastoreHook` is moved into `apache-hive` provider in Airflow 3.0;
|
39 | HiveCliHook()
40 | HiveMetastoreHook()
| ^^^^^^^^^^^^^^^^^ AIR302
41 | HiveServer2Hook()
42 | HIVE_QUEUE_PRIORITIES
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HiveMetastoreHook` instead.
AIR302_hive.py:41:1: AIR302 `airflow.hooks.hive_hooks.HiveServer2Hook` is moved into `apache-hive` provider in Airflow 3.0;
|
39 | HiveCliHook()
40 | HiveMetastoreHook()
41 | HiveServer2Hook()
| ^^^^^^^^^^^^^^^ AIR302
42 | HIVE_QUEUE_PRIORITIES
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HiveServer2Hook` instead.
AIR302_hive.py:42:1: AIR302 `airflow.hooks.hive_hooks.HIVE_QUEUE_PRIORITIES` is moved into `apache-hive` provider in Airflow 3.0;
|
40 | HiveMetastoreHook()
41 | HiveServer2Hook()
42 | HIVE_QUEUE_PRIORITIES
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
43 |
44 | HiveOperator()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.hooks.hive.HIVE_QUEUE_PRIORITIES` instead.
AIR302_hive.py:44:1: AIR302 `airflow.operators.hive_operator.HiveOperator` is moved into `apache-hive` provider in Airflow 3.0;
|
42 | HIVE_QUEUE_PRIORITIES
43 |
44 | HiveOperator()
| ^^^^^^^^^^^^ AIR302
45 |
46 | HiveStatsCollectionOperator()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.operators.hive.HiveOperator` instead.
AIR302_hive.py:46:1: AIR302 `airflow.operators.hive_stats_operator.HiveStatsCollectionOperator` is moved into `apache-hive` provider in Airflow 3.0;
|
44 | HiveOperator()
45 |
46 | HiveStatsCollectionOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
47 |
48 | HiveToMySqlOperator()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.operators.hive_stats.HiveStatsCollectionOperator` instead.
AIR302_hive.py:48:1: AIR302 `airflow.operators.hive_to_mysql.HiveToMySqlOperator` is moved into `apache-hive` provider in Airflow 3.0;
|
46 | HiveStatsCollectionOperator()
47 |
48 | HiveToMySqlOperator()
| ^^^^^^^^^^^^^^^^^^^ AIR302
49 | HiveToMySqlTransfer()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.hive_to_mysql.HiveToMySqlOperator` instead.
AIR302_hive.py:49:1: AIR302 `airflow.operators.hive_to_mysql.HiveToMySqlTransfer` is moved into `apache-hive` provider in Airflow 3.0;
|
48 | HiveToMySqlOperator()
49 | HiveToMySqlTransfer()
| ^^^^^^^^^^^^^^^^^^^ AIR302
50 |
51 | HiveToSambaOperator()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.hive_to_mysql.HiveToMySqlOperator` instead.
AIR302_hive.py:51:1: AIR302 `airflow.operators.hive_to_samba_operator.HiveToSambaOperator` is moved into `apache-hive` provider in Airflow 3.0;
|
49 | HiveToMySqlTransfer()
50 |
51 | HiveToSambaOperator()
| ^^^^^^^^^^^^^^^^^^^ AIR302
52 |
53 | MsSqlToHiveOperator()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.hive_to_samba.HiveToSambaOperator` instead.
AIR302_hive.py:53:1: AIR302 `airflow.operators.mssql_to_hive.MsSqlToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0;
|
51 | HiveToSambaOperator()
52 |
53 | MsSqlToHiveOperator()
| ^^^^^^^^^^^^^^^^^^^ AIR302
54 | MsSqlToHiveTransfer()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mssql_to_hive.MsSqlToHiveOperator` instead.
AIR302_hive.py:54:1: AIR302 `airflow.operators.mssql_to_hive.MsSqlToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0;
|
53 | MsSqlToHiveOperator()
54 | MsSqlToHiveTransfer()
| ^^^^^^^^^^^^^^^^^^^ AIR302
55 |
56 | MySqlToHiveOperator()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mssql_to_hive.MsSqlToHiveOperator` instead.
AIR302_hive.py:56:1: AIR302 `airflow.operators.mysql_to_hive.MySqlToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0;
|
54 | MsSqlToHiveTransfer()
55 |
56 | MySqlToHiveOperator()
| ^^^^^^^^^^^^^^^^^^^ AIR302
57 | MySqlToHiveTransfer()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mysql_to_hive.MySqlToHiveOperator` instead.
AIR302_hive.py:57:1: AIR302 `airflow.operators.mysql_to_hive.MySqlToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0;
|
56 | MySqlToHiveOperator()
57 | MySqlToHiveTransfer()
| ^^^^^^^^^^^^^^^^^^^ AIR302
58 |
59 | S3ToHiveOperator()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.mysql_to_hive.MySqlToHiveOperator` instead.
AIR302_hive.py:59:1: AIR302 `airflow.operators.s3_to_hive_operator.S3ToHiveOperator` is moved into `apache-hive` provider in Airflow 3.0;
|
57 | MySqlToHiveTransfer()
58 |
59 | S3ToHiveOperator()
| ^^^^^^^^^^^^^^^^ AIR302
60 | S3ToHiveTransfer()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.s3_to_hive.S3ToHiveOperator` instead.
AIR302_hive.py:60:1: AIR302 `airflow.operators.s3_to_hive_operator.S3ToHiveTransfer` is moved into `apache-hive` provider in Airflow 3.0;
|
59 | S3ToHiveOperator()
60 | S3ToHiveTransfer()
| ^^^^^^^^^^^^^^^^ AIR302
61 |
62 | HivePartitionSensor()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.transfers.s3_to_hive.S3ToHiveOperator` instead.
AIR302_hive.py:62:1: AIR302 `airflow.sensors.hive_partition_sensor.HivePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0;
|
60 | S3ToHiveTransfer()
61 |
62 | HivePartitionSensor()
| ^^^^^^^^^^^^^^^^^^^ AIR302
63 |
64 | MetastorePartitionSensor()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.sensors.hive_partition.HivePartitionSensor` instead.
AIR302_hive.py:64:1: AIR302 `airflow.sensors.metastore_partition_sensor.MetastorePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0;
|
62 | HivePartitionSensor()
63 |
64 | MetastorePartitionSensor()
| ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
65 |
66 | NamedHivePartitionSensor()
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.sensors.metastore_partition.MetastorePartitionSensor` instead.
AIR302_hive.py:66:1: AIR302 `airflow.sensors.named_hive_partition_sensor.NamedHivePartitionSensor` is moved into `apache-hive` provider in Airflow 3.0;
|
64 | MetastorePartitionSensor()
65 |
66 | NamedHivePartitionSensor()
| ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-apache-hive>=1.0.0` and use `airflow.providers.apache.hive.sensors.named_hive_partition.NamedHivePartitionSensor` instead.

View File

@ -0,0 +1,42 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_http.py:7:1: AIR302 `airflow.hooks.http_hook.HttpHook` is moved into `http` provider in Airflow 3.0;
|
5 | from airflow.sensors.http_sensor import HttpSensor
6 |
7 | HttpHook()
| ^^^^^^^^ AIR302
8 | SimpleHttpOperator()
9 | HttpSensor()
|
= help: Install `apache-airflow-providers-http>=1.0.0` and use `airflow.providers.http.hooks.http.HttpHook` instead.
AIR302_http.py:8:1: AIR302 [*] `airflow.operators.http_operator.SimpleHttpOperator` is moved into `http` provider in Airflow 3.0;
|
7 | HttpHook()
8 | SimpleHttpOperator()
| ^^^^^^^^^^^^^^^^^^ AIR302
9 | HttpSensor()
|
= help: Install `apache-airflow-providers-http>=5.0.0` and use `airflow.providers.http.operators.http.HttpOperator` instead.
Safe fix
3 3 | from airflow.hooks.http_hook import HttpHook
4 4 | from airflow.operators.http_operator import SimpleHttpOperator
5 5 | from airflow.sensors.http_sensor import HttpSensor
6 |+from airflow.providers.http.operators.http import HttpOperator
6 7 |
7 8 | HttpHook()
8 |-SimpleHttpOperator()
9 |+HttpOperator()
9 10 | HttpSensor()
AIR302_http.py:9:1: AIR302 `airflow.sensors.http_sensor.HttpSensor` is moved into `http` provider in Airflow 3.0;
|
7 | HttpHook()
8 | SimpleHttpOperator()
9 | HttpSensor()
| ^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-http>=1.0.0` and use `airflow.providers.http.sensors.http.HttpSensor` instead.

View File

@ -0,0 +1,20 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_jdbc.py:8:1: AIR302 `airflow.hooks.jdbc_hook.JdbcHook` is moved into `jdbc` provider in Airflow 3.0;
|
6 | )
7 |
8 | JdbcHook()
| ^^^^^^^^ AIR302
9 | jaydebeapi()
|
= help: Install `apache-airflow-providers-jdbc>=1.0.0` and use `airflow.providers.jdbc.hooks.jdbc.JdbcHook` instead.
AIR302_jdbc.py:9:1: AIR302 `airflow.hooks.jdbc_hook.jaydebeapi` is moved into `jdbc` provider in Airflow 3.0;
|
8 | JdbcHook()
9 | jaydebeapi()
| ^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-jdbc>=1.0.0` and use `airflow.providers.jdbc.hooks.jdbc.jaydebeapi` instead.

View File

@ -0,0 +1,599 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_kubernetes.py:29:1: AIR302 `airflow.executors.kubernetes_executor_types.ALL_NAMESPACES` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
27 | )
28 |
29 | ALL_NAMESPACES
| ^^^^^^^^^^^^^^ AIR302
30 | POD_EXECUTOR_DONE_KEY
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types.ALL_NAMESPACES` instead.
AIR302_kubernetes.py:30:1: AIR302 `airflow.executors.kubernetes_executor_types.POD_EXECUTOR_DONE_KEY` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
29 | ALL_NAMESPACES
30 | POD_EXECUTOR_DONE_KEY
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
31 |
32 | K8SModel()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types.POD_EXECUTOR_DONE_KEY` instead.
AIR302_kubernetes.py:32:1: AIR302 `airflow.kubernetes.k8s_model.K8SModel` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
30 | POD_EXECUTOR_DONE_KEY
31 |
32 | K8SModel()
| ^^^^^^^^ AIR302
33 | append_to_pod()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.k8s_model.K8SModel` instead.
AIR302_kubernetes.py:33:1: AIR302 `airflow.kubernetes.k8s_model.append_to_pod` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
32 | K8SModel()
33 | append_to_pod()
| ^^^^^^^^^^^^^ AIR302
34 |
35 | _disable_verify_ssl()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.k8s_model.append_to_pod` instead.
AIR302_kubernetes.py:35:1: AIR302 `airflow.kubernetes.kube_client._disable_verify_ssl` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
33 | append_to_pod()
34 |
35 | _disable_verify_ssl()
| ^^^^^^^^^^^^^^^^^^^ AIR302
36 | _enable_tcp_keepalive()
37 | get_kube_client()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kube_client._disable_verify_ssl` instead.
AIR302_kubernetes.py:36:1: AIR302 `airflow.kubernetes.kube_client._enable_tcp_keepalive` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
35 | _disable_verify_ssl()
36 | _enable_tcp_keepalive()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
37 | get_kube_client()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kube_client._enable_tcp_keepalive` instead.
AIR302_kubernetes.py:37:1: AIR302 `airflow.kubernetes.kube_client.get_kube_client` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
35 | _disable_verify_ssl()
36 | _enable_tcp_keepalive()
37 | get_kube_client()
| ^^^^^^^^^^^^^^^ AIR302
38 |
39 | add_pod_suffix()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kube_client.get_kube_client` instead.
AIR302_kubernetes.py:39:1: AIR302 [*] `airflow.kubernetes.kubernetes_helper_functions.add_pod_suffix` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
37 | get_kube_client()
38 |
39 | add_pod_suffix()
| ^^^^^^^^^^^^^^ AIR302
40 | create_pod_id()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=10.0.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.add_unique_suffix` instead.
Safe fix
25 25 | Port,
26 26 | Resources,
27 27 | )
28 |+from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import add_unique_suffix
28 29 |
29 30 | ALL_NAMESPACES
30 31 | POD_EXECUTOR_DONE_KEY
--------------------------------------------------------------------------------
36 37 | _enable_tcp_keepalive()
37 38 | get_kube_client()
38 39 |
39 |-add_pod_suffix()
40 |+add_unique_suffix()
40 41 | create_pod_id()
41 42 |
42 43 | annotations_for_logging_task_metadata()
AIR302_kubernetes.py:40:1: AIR302 [*] `airflow.kubernetes.kubernetes_helper_functions.create_pod_id` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
39 | add_pod_suffix()
40 | create_pod_id()
| ^^^^^^^^^^^^^ AIR302
41 |
42 | annotations_for_logging_task_metadata()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=10.0.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.create_unique_id` instead.
Safe fix
25 25 | Port,
26 26 | Resources,
27 27 | )
28 |+from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import create_unique_id
28 29 |
29 30 | ALL_NAMESPACES
30 31 | POD_EXECUTOR_DONE_KEY
--------------------------------------------------------------------------------
37 38 | get_kube_client()
38 39 |
39 40 | add_pod_suffix()
40 |-create_pod_id()
41 |+create_unique_id()
41 42 |
42 43 | annotations_for_logging_task_metadata()
43 44 | annotations_to_key()
AIR302_kubernetes.py:42:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.annotations_for_logging_task_metadata` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
40 | create_pod_id()
41 |
42 | annotations_for_logging_task_metadata()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
43 | annotations_to_key()
44 | get_logs_task_metadata()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.annotations_for_logging_task_metadata` instead.
AIR302_kubernetes.py:43:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.annotations_to_key` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
42 | annotations_for_logging_task_metadata()
43 | annotations_to_key()
| ^^^^^^^^^^^^^^^^^^ AIR302
44 | get_logs_task_metadata()
45 | rand_str()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.annotations_to_key` instead.
AIR302_kubernetes.py:44:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.get_logs_task_metadata` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
42 | annotations_for_logging_task_metadata()
43 | annotations_to_key()
44 | get_logs_task_metadata()
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
45 | rand_str()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.get_logs_task_metadata` instead.
AIR302_kubernetes.py:45:1: AIR302 `airflow.kubernetes.kubernetes_helper_functions.rand_str` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
43 | annotations_to_key()
44 | get_logs_task_metadata()
45 | rand_str()
| ^^^^^^^^ AIR302
46 |
47 | Port()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.rand_str` instead.
AIR302_kubernetes.py:47:1: AIR302 [*] `airflow.kubernetes.pod.Port` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
45 | rand_str()
46 |
47 | Port()
| ^^^^ AIR302
48 | Resources()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1ContainerPort` instead.
Safe fix
25 25 | Port,
26 26 | Resources,
27 27 | )
28 |+from kubernetes.client.models import V1ContainerPort
28 29 |
29 30 | ALL_NAMESPACES
30 31 | POD_EXECUTOR_DONE_KEY
--------------------------------------------------------------------------------
44 45 | get_logs_task_metadata()
45 46 | rand_str()
46 47 |
47 |-Port()
48 |+V1ContainerPort()
48 49 | Resources()
49 50 |
50 51 |
AIR302_kubernetes.py:48:1: AIR302 [*] `airflow.kubernetes.pod.Resources` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
47 | Port()
48 | Resources()
| ^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1ResourceRequirements` instead.
Safe fix
25 25 | Port,
26 26 | Resources,
27 27 | )
28 |+from kubernetes.client.models import V1ResourceRequirements
28 29 |
29 30 | ALL_NAMESPACES
30 31 | POD_EXECUTOR_DONE_KEY
--------------------------------------------------------------------------------
45 46 | rand_str()
46 47 |
47 48 | Port()
48 |-Resources()
49 |+V1ResourceRequirements()
49 50 |
50 51 |
51 52 | from airflow.kubernetes.pod_generator import (
AIR302_kubernetes.py:64:1: AIR302 `airflow.kubernetes.pod_generator.datetime_to_label_safe_datestring` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
62 | )
63 |
64 | datetime_to_label_safe_datestring()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
65 | extend_object_field()
66 | label_safe_datestring_to_datetime()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.datetime_to_label_safe_datestring` instead.
AIR302_kubernetes.py:65:1: AIR302 `airflow.kubernetes.pod_generator.extend_object_field` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
64 | datetime_to_label_safe_datestring()
65 | extend_object_field()
| ^^^^^^^^^^^^^^^^^^^ AIR302
66 | label_safe_datestring_to_datetime()
67 | make_safe_label_value()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.extend_object_field` instead.
AIR302_kubernetes.py:66:1: AIR302 `airflow.kubernetes.pod_generator.label_safe_datestring_to_datetime` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
64 | datetime_to_label_safe_datestring()
65 | extend_object_field()
66 | label_safe_datestring_to_datetime()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
67 | make_safe_label_value()
68 | merge_objects()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.label_safe_datestring_to_datetime` instead.
AIR302_kubernetes.py:67:1: AIR302 `airflow.kubernetes.pod_generator.make_safe_label_value` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
65 | extend_object_field()
66 | label_safe_datestring_to_datetime()
67 | make_safe_label_value()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
68 | merge_objects()
69 | PodGenerator()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.make_safe_label_value` instead.
AIR302_kubernetes.py:68:1: AIR302 `airflow.kubernetes.pod_generator.merge_objects` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
66 | label_safe_datestring_to_datetime()
67 | make_safe_label_value()
68 | merge_objects()
| ^^^^^^^^^^^^^ AIR302
69 | PodGenerator()
70 | PodDefaults()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.merge_objects` instead.
AIR302_kubernetes.py:69:1: AIR302 `airflow.kubernetes.pod_generator.PodGenerator` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
67 | make_safe_label_value()
68 | merge_objects()
69 | PodGenerator()
| ^^^^^^^^^^^^ AIR302
70 | PodDefaults()
71 | PodGeneratorDeprecated()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.PodGenerator` instead.
AIR302_kubernetes.py:70:1: AIR302 `airflow.kubernetes.pod_generator.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
68 | merge_objects()
69 | PodGenerator()
70 | PodDefaults()
| ^^^^^^^^^^^ AIR302
71 | PodGeneratorDeprecated()
72 | add_pod_suffix()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.utils.xcom_sidecar.PodDefaults` instead.
AIR302_kubernetes.py:71:1: AIR302 `airflow.kubernetes.pod_generator.PodGeneratorDeprecated` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
69 | PodGenerator()
70 | PodDefaults()
71 | PodGeneratorDeprecated()
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
72 | add_pod_suffix()
73 | rand_str()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.PodGenerator` instead.
AIR302_kubernetes.py:72:1: AIR302 [*] `airflow.kubernetes.pod_generator.add_pod_suffix` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
70 | PodDefaults()
71 | PodGeneratorDeprecated()
72 | add_pod_suffix()
| ^^^^^^^^^^^^^^ AIR302
73 | rand_str()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=10.0.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.add_unique_suffix` instead.
Safe fix
60 60 | merge_objects,
61 61 | rand_str,
62 62 | )
63 |+from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import add_unique_suffix
63 64 |
64 65 | datetime_to_label_safe_datestring()
65 66 | extend_object_field()
--------------------------------------------------------------------------------
69 70 | PodGenerator()
70 71 | PodDefaults()
71 72 | PodGeneratorDeprecated()
72 |-add_pod_suffix()
73 |+add_unique_suffix()
73 74 | rand_str()
74 75 |
75 76 |
AIR302_kubernetes.py:73:1: AIR302 `airflow.kubernetes.pod_generator.rand_str` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
71 | PodGeneratorDeprecated()
72 | add_pod_suffix()
73 | rand_str()
| ^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kubernetes_helper_functions.rand_str` instead.
AIR302_kubernetes.py:86:1: AIR302 `airflow.kubernetes.pod_generator_deprecated.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
84 | )
85 |
86 | PodDefaults()
| ^^^^^^^^^^^ AIR302
87 | PodGenerator()
88 | make_safe_label_value()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.utils.xcom_sidecar.PodDefaults` instead.
AIR302_kubernetes.py:87:1: AIR302 `airflow.kubernetes.pod_generator_deprecated.PodGenerator` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
86 | PodDefaults()
87 | PodGenerator()
| ^^^^^^^^^^^^ AIR302
88 | make_safe_label_value()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.PodGenerator` instead.
AIR302_kubernetes.py:88:1: AIR302 `airflow.kubernetes.pod_generator_deprecated.make_safe_label_value` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
86 | PodDefaults()
87 | PodGenerator()
88 | make_safe_label_value()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
89 |
90 | PodLauncher()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.pod_generator.make_safe_label_value` instead.
AIR302_kubernetes.py:90:1: AIR302 [*] `airflow.kubernetes.pod_launcher.PodLauncher` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
88 | make_safe_label_value()
89 |
90 | PodLauncher()
| ^^^^^^^^^^^ AIR302
91 | PodStatus()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=3.0.0` and use `airflow.providers.cncf.kubernetes.utils.pod_manager.PodManager` instead.
Safe fix
82 82 | PodLauncher,
83 83 | PodStatus,
84 84 | )
85 |+from airflow.providers.cncf.kubernetes.utils.pod_manager import PodManager
85 86 |
86 87 | PodDefaults()
87 88 | PodGenerator()
88 89 | make_safe_label_value()
89 90 |
90 |-PodLauncher()
91 |+PodManager()
91 92 | PodStatus()
92 93 |
93 94 |
AIR302_kubernetes.py:91:1: AIR302 [*] `airflow.kubernetes.pod_launcher.PodStatus` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
90 | PodLauncher()
91 | PodStatus()
| ^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=3.0.0` and use ` airflow.providers.cncf.kubernetes.utils.pod_manager.PodPhase` instead.
Safe fix
82 82 | PodLauncher,
83 83 | PodStatus,
84 84 | )
85 |+from airflow.providers.cncf.kubernetes.utils.pod_manager import PodPhase
85 86 |
86 87 | PodDefaults()
87 88 | PodGenerator()
88 89 | make_safe_label_value()
89 90 |
90 91 | PodLauncher()
91 |-PodStatus()
92 |+PodPhase()
92 93 |
93 94 |
94 95 | from airflow.kubernetes.pod_launcher_deprecated import (
AIR302_kubernetes.py:108:1: AIR302 `airflow.kubernetes.pod_launcher_deprecated.PodDefaults` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
106 | from airflow.kubernetes.volume_mount import VolumeMount
107 |
108 | PodDefaults()
| ^^^^^^^^^^^ AIR302
109 | PodLauncher()
110 | PodStatus()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.utils.xcom_sidecar.PodDefaults` instead.
AIR302_kubernetes.py:109:1: AIR302 [*] `airflow.kubernetes.pod_launcher_deprecated.PodLauncher` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
108 | PodDefaults()
109 | PodLauncher()
| ^^^^^^^^^^^ AIR302
110 | PodStatus()
111 | get_kube_client()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=3.0.0` and use `airflow.providers.cncf.kubernetes.utils.pod_manager.PodManager` instead.
Safe fix
104 104 | )
105 105 | from airflow.kubernetes.volume import Volume
106 106 | from airflow.kubernetes.volume_mount import VolumeMount
107 |+from airflow.providers.cncf.kubernetes.utils.pod_manager import PodManager
107 108 |
108 109 | PodDefaults()
109 |-PodLauncher()
110 |+PodManager()
110 111 | PodStatus()
111 112 | get_kube_client()
112 113 |
AIR302_kubernetes.py:110:1: AIR302 [*] `airflow.kubernetes.pod_launcher_deprecated.PodStatus` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
108 | PodDefaults()
109 | PodLauncher()
110 | PodStatus()
| ^^^^^^^^^ AIR302
111 | get_kube_client()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=3.0.0` and use ` airflow.providers.cncf.kubernetes.utils.pod_manager.PodPhase` instead.
Safe fix
104 104 | )
105 105 | from airflow.kubernetes.volume import Volume
106 106 | from airflow.kubernetes.volume_mount import VolumeMount
107 |+from airflow.providers.cncf.kubernetes.utils.pod_manager import PodPhase
107 108 |
108 109 | PodDefaults()
109 110 | PodLauncher()
110 |-PodStatus()
111 |+PodPhase()
111 112 | get_kube_client()
112 113 |
113 114 | PodRuntimeInfoEnv()
AIR302_kubernetes.py:111:1: AIR302 `airflow.kubernetes.pod_launcher_deprecated.get_kube_client` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
109 | PodLauncher()
110 | PodStatus()
111 | get_kube_client()
| ^^^^^^^^^^^^^^^ AIR302
112 |
113 | PodRuntimeInfoEnv()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.kube_client.get_kube_client` instead.
AIR302_kubernetes.py:113:1: AIR302 [*] `airflow.kubernetes.pod_runtime_info_env.PodRuntimeInfoEnv` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
111 | get_kube_client()
112 |
113 | PodRuntimeInfoEnv()
| ^^^^^^^^^^^^^^^^^ AIR302
114 | K8SModel()
115 | Secret()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1EnvVar` instead.
Safe fix
104 104 | )
105 105 | from airflow.kubernetes.volume import Volume
106 106 | from airflow.kubernetes.volume_mount import VolumeMount
107 |+from kubernetes.client.models import V1EnvVar
107 108 |
108 109 | PodDefaults()
109 110 | PodLauncher()
110 111 | PodStatus()
111 112 | get_kube_client()
112 113 |
113 |-PodRuntimeInfoEnv()
114 |+V1EnvVar()
114 115 | K8SModel()
115 116 | Secret()
116 117 | Volume()
AIR302_kubernetes.py:114:1: AIR302 `airflow.kubernetes.secret.K8SModel` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
113 | PodRuntimeInfoEnv()
114 | K8SModel()
| ^^^^^^^^ AIR302
115 | Secret()
116 | Volume()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.k8s_model.K8SModel` instead.
AIR302_kubernetes.py:115:1: AIR302 `airflow.kubernetes.secret.Secret` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
113 | PodRuntimeInfoEnv()
114 | K8SModel()
115 | Secret()
| ^^^^^^ AIR302
116 | Volume()
117 | VolumeMount()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `airflow.providers.cncf.kubernetes.secret.Secret` instead.
AIR302_kubernetes.py:116:1: AIR302 [*] `airflow.kubernetes.volume.Volume` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
114 | K8SModel()
115 | Secret()
116 | Volume()
| ^^^^^^ AIR302
117 | VolumeMount()
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1Volume` instead.
Safe fix
104 104 | )
105 105 | from airflow.kubernetes.volume import Volume
106 106 | from airflow.kubernetes.volume_mount import VolumeMount
107 |+from kubernetes.client.models import V1Volume
107 108 |
108 109 | PodDefaults()
109 110 | PodLauncher()
--------------------------------------------------------------------------------
113 114 | PodRuntimeInfoEnv()
114 115 | K8SModel()
115 116 | Secret()
116 |-Volume()
117 |+V1Volume()
117 118 | VolumeMount()
AIR302_kubernetes.py:117:1: AIR302 [*] `airflow.kubernetes.volume_mount.VolumeMount` is moved into `cncf-kubernetes` provider in Airflow 3.0;
|
115 | Secret()
116 | Volume()
117 | VolumeMount()
| ^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-cncf-kubernetes>=7.4.0` and use `kubernetes.client.models.V1VolumeMount` instead.
Safe fix
104 104 | )
105 105 | from airflow.kubernetes.volume import Volume
106 106 | from airflow.kubernetes.volume_mount import VolumeMount
107 |+from kubernetes.client.models import V1VolumeMount
107 108 |
108 109 | PodDefaults()
109 110 | PodLauncher()
--------------------------------------------------------------------------------
114 115 | K8SModel()
115 116 | Secret()
116 117 | Volume()
117 |-VolumeMount()
118 |+V1VolumeMount()

View File

@ -0,0 +1,31 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_mysql.py:9:1: AIR302 `airflow.hooks.mysql_hook.MySqlHook` is moved into `mysql` provider in Airflow 3.0;
|
7 | )
8 |
9 | MySqlHook()
| ^^^^^^^^^ AIR302
10 | PrestoToMySqlOperator()
11 | PrestoToMySqlTransfer()
|
= help: Install `apache-airflow-providers-mysql>=1.0.0` and use `airflow.providers.mysql.hooks.mysql.MySqlHook` instead.
AIR302_mysql.py:10:1: AIR302 `airflow.operators.presto_to_mysql.PrestoToMySqlOperator` is moved into `mysql` provider in Airflow 3.0;
|
9 | MySqlHook()
10 | PrestoToMySqlOperator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
11 | PrestoToMySqlTransfer()
|
= help: Install `apache-airflow-providers-mysql>=1.0.0` and use `airflow.providers.mysql.transfers.presto_to_mysql.PrestoToMySqlOperator` instead.
AIR302_mysql.py:11:1: AIR302 `airflow.operators.presto_to_mysql.PrestoToMySqlTransfer` is moved into `mysql` provider in Airflow 3.0;
|
9 | MySqlHook()
10 | PrestoToMySqlOperator()
11 | PrestoToMySqlTransfer()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-mysql>=1.0.0` and use `airflow.providers.mysql.transfers.presto_to_mysql.PrestoToMySqlOperator` instead.

View File

@ -0,0 +1,11 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_oracle.py:5:1: AIR302 `airflow.hooks.oracle_hook.OracleHook` is moved into `oracle` provider in Airflow 3.0;
|
3 | from airflow.hooks.oracle_hook import OracleHook
4 |
5 | OracleHook()
| ^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-oracle>=1.0.0` and use `airflow.providers.oracle.hooks.oracle.OracleHook` instead.

View File

@ -0,0 +1,11 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_papermill.py:5:1: AIR302 `airflow.operators.papermill_operator.PapermillOperator` is moved into `papermill` provider in Airflow 3.0;
|
3 | from airflow.operators.papermill_operator import PapermillOperator
4 |
5 | PapermillOperator()
| ^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-papermill>=1.0.0` and use `airflow.providers.papermill.operators.papermill.PapermillOperator` instead.

View File

@ -0,0 +1,20 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_pig.py:6:1: AIR302 `airflow.hooks.pig_hook.PigCliHook` is moved into `apache-pig` provider in Airflow 3.0;
|
4 | from airflow.operators.pig_operator import PigOperator
5 |
6 | PigCliHook()
| ^^^^^^^^^^ AIR302
7 | PigOperator()
|
= help: Install `apache-airflow-providers-apache-pig>=1.0.0` and use `airflow.providers.apache.pig.hooks.pig.PigCliHook` instead.
AIR302_pig.py:7:1: AIR302 `airflow.operators.pig_operator.PigOperator` is moved into `apache-pig` provider in Airflow 3.0;
|
6 | PigCliHook()
7 | PigOperator()
| ^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-apache-pig>=1.0.0` and use `airflow.providers.apache.pig.operators.pig.PigOperator` instead.

View File

@ -0,0 +1,19 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_postgres.py:6:1: AIR302 `airflow.hooks.postgres_hook.PostgresHook` is moved into `postgres` provider in Airflow 3.0;
|
4 | from airflow.operators.postgres_operator import Mapping
5 |
6 | PostgresHook()
| ^^^^^^^^^^^^ AIR302
7 | Mapping()
|
= help: Install `apache-airflow-providers-postgres>=1.0.0` and use `airflow.providers.postgres.hooks.postgres.PostgresHook` instead.
AIR302_postgres.py:7:1: AIR302 `airflow.operators.postgres_operator.Mapping` is removed in Airflow 3.0
|
6 | PostgresHook()
7 | Mapping()
| ^^^^^^^ AIR302
|

View File

@ -0,0 +1,11 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_presto.py:5:1: AIR302 `airflow.hooks.presto_hook.PrestoHook` is moved into `presto` provider in Airflow 3.0;
|
3 | from airflow.hooks.presto_hook import PrestoHook
4 |
5 | PrestoHook()
| ^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-presto>=1.0.0` and use `airflow.providers.presto.hooks.presto.PrestoHook` instead.

View File

@ -0,0 +1,11 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_samba.py:5:1: AIR302 `airflow.hooks.samba_hook.SambaHook` is moved into `samba` provider in Airflow 3.0;
|
3 | from airflow.hooks.samba_hook import SambaHook
4 |
5 | SambaHook()
| ^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-samba>=1.0.0` and use `airflow.providers.samba.hooks.samba.SambaHook` instead.

View File

@ -0,0 +1,31 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_slack.py:6:1: AIR302 `airflow.hooks.slack_hook.SlackHook` is moved into `slack` provider in Airflow 3.0;
|
4 | from airflow.operators.slack_operator import SlackAPIOperator, SlackAPIPostOperator
5 |
6 | SlackHook()
| ^^^^^^^^^ AIR302
7 | SlackAPIOperator()
8 | SlackAPIPostOperator()
|
= help: Install `apache-airflow-providers-slack>=1.0.0` and use `airflow.providers.slack.hooks.slack.SlackHook` instead.
AIR302_slack.py:7:1: AIR302 `airflow.operators.slack_operator.SlackAPIOperator` is moved into `slack` provider in Airflow 3.0;
|
6 | SlackHook()
7 | SlackAPIOperator()
| ^^^^^^^^^^^^^^^^ AIR302
8 | SlackAPIPostOperator()
|
= help: Install `apache-airflow-providers-slack>=1.0.0` and use `airflow.providers.slack.operators.slack.SlackAPIOperator` instead.
AIR302_slack.py:8:1: AIR302 `airflow.operators.slack_operator.SlackAPIPostOperator` is moved into `slack` provider in Airflow 3.0;
|
6 | SlackHook()
7 | SlackAPIOperator()
8 | SlackAPIPostOperator()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-slack>=1.0.0` and use `airflow.providers.slack.operators.slack.SlackAPIPostOperator` instead.

View File

@ -0,0 +1,22 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_smtp.py:5:1: AIR302 `airflow.operators.email_operator.EmailOperator` is moved into `smtp` provider in Airflow 3.0;
|
3 | from airflow.operators.email_operator import EmailOperator
4 |
5 | EmailOperator()
| ^^^^^^^^^^^^^ AIR302
6 |
7 | from airflow.operators.email import EmailOperator
|
= help: Install `apache-airflow-providers-smtp>=1.0.0` and use `airflow.providers.smtp.operators.smtp.EmailOperator` instead.
AIR302_smtp.py:9:1: AIR302 `airflow.operators.email.EmailOperator` is moved into `smtp` provider in Airflow 3.0;
|
7 | from airflow.operators.email import EmailOperator
8 |
9 | EmailOperator()
| ^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-smtp>=1.0.0` and use `airflow.providers.smtp.operators.smtp.EmailOperator` instead.

View File

@ -0,0 +1,11 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_sqlite.py:5:1: AIR302 `airflow.hooks.sqlite_hook.SqliteHook` is moved into `sqlite` provider in Airflow 3.0;
|
3 | from airflow.hooks.sqlite_hook import SqliteHook
4 |
5 | SqliteHook()
| ^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-sqlite>=1.0.0` and use `airflow.providers.sqlite.hooks.sqlite.SqliteHook` instead.

View File

@ -0,0 +1,157 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_standard.py:25:1: AIR302 `airflow.operators.bash_operator.BashOperator` is moved into `standard` provider in Airflow 3.0;
|
23 | )
24 |
25 | BashOperator()
| ^^^^^^^^^^^^ AIR302
26 |
27 | TriggerDagRunLink()
|
= help: Install `apache-airflow-providers-standard>=0.0.1` and use `airflow.providers.standard.operators.bash.BashOperator` instead.
AIR302_standard.py:27:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunLink` is moved into `standard` provider in Airflow 3.0;
|
25 | BashOperator()
26 |
27 | TriggerDagRunLink()
| ^^^^^^^^^^^^^^^^^ AIR302
28 | TriggerDagRunOperator()
29 | DummyOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.2` and use `airflow.providers.standard.operators.trigger_dagrun.TriggerDagRunLink` instead.
AIR302_standard.py:28:1: AIR302 `airflow.operators.dagrun_operator.TriggerDagRunOperator` is moved into `standard` provider in Airflow 3.0;
|
27 | TriggerDagRunLink()
28 | TriggerDagRunOperator()
| ^^^^^^^^^^^^^^^^^^^^^ AIR302
29 | DummyOperator()
30 | EmptyOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.2` and use `airflow.providers.standard.operators.trigger_dagrun.TriggerDagRunOperator` instead.
AIR302_standard.py:29:1: AIR302 `airflow.operators.dummy.DummyOperator` is moved into `standard` provider in Airflow 3.0;
|
27 | TriggerDagRunLink()
28 | TriggerDagRunOperator()
29 | DummyOperator()
| ^^^^^^^^^^^^^ AIR302
30 | EmptyOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.2` and use `airflow.providers.standard.operators.empty.EmptyOperator` instead.
AIR302_standard.py:30:1: AIR302 `airflow.operators.dummy.EmptyOperator` is moved into `standard` provider in Airflow 3.0;
|
28 | TriggerDagRunOperator()
29 | DummyOperator()
30 | EmptyOperator()
| ^^^^^^^^^^^^^ AIR302
31 |
32 | LatestOnlyOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.2` and use `airflow.providers.standard.operators.empty.EmptyOperator` instead.
AIR302_standard.py:32:1: AIR302 `airflow.operators.latest_only_operator.LatestOnlyOperator` is moved into `standard` provider in Airflow 3.0;
|
30 | EmptyOperator()
31 |
32 | LatestOnlyOperator()
| ^^^^^^^^^^^^^^^^^^ AIR302
33 |
34 | BranchPythonOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.3` and use `airflow.providers.standard.operators.latest_only.LatestOnlyOperator` instead.
AIR302_standard.py:34:1: AIR302 `airflow.operators.python_operator.BranchPythonOperator` is moved into `standard` provider in Airflow 3.0;
|
32 | LatestOnlyOperator()
33 |
34 | BranchPythonOperator()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
35 | PythonOperator()
36 | PythonVirtualenvOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.1` and use `airflow.providers.standard.operators.python.BranchPythonOperator` instead.
AIR302_standard.py:35:1: AIR302 `airflow.operators.python_operator.PythonOperator` is moved into `standard` provider in Airflow 3.0;
|
34 | BranchPythonOperator()
35 | PythonOperator()
| ^^^^^^^^^^^^^^ AIR302
36 | PythonVirtualenvOperator()
37 | ShortCircuitOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.1` and use `airflow.providers.standard.operators.python.PythonOperator` instead.
AIR302_standard.py:36:1: AIR302 `airflow.operators.python_operator.PythonVirtualenvOperator` is moved into `standard` provider in Airflow 3.0;
|
34 | BranchPythonOperator()
35 | PythonOperator()
36 | PythonVirtualenvOperator()
| ^^^^^^^^^^^^^^^^^^^^^^^^ AIR302
37 | ShortCircuitOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.1` and use `airflow.providers.standard.operators.python.PythonVirtualenvOperator` instead.
AIR302_standard.py:37:1: AIR302 `airflow.operators.python_operator.ShortCircuitOperator` is moved into `standard` provider in Airflow 3.0;
|
35 | PythonOperator()
36 | PythonVirtualenvOperator()
37 | ShortCircuitOperator()
| ^^^^^^^^^^^^^^^^^^^^ AIR302
38 |
39 | ExternalTaskMarker()
|
= help: Install `apache-airflow-providers-standard>=0.0.1` and use `airflow.providers.standard.operators.python.ShortCircuitOperator` instead.
AIR302_standard.py:39:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskMarker` is moved into `standard` provider in Airflow 3.0;
|
37 | ShortCircuitOperator()
38 |
39 | ExternalTaskMarker()
| ^^^^^^^^^^^^^^^^^^ AIR302
40 | ExternalTaskSensor()
41 | ExternalTaskSensorLink()
|
= help: Install `apache-airflow-providers-standard>=0.0.3` and use `airflow.providers.standard.sensors.external_task.ExternalTaskMarker` instead.
AIR302_standard.py:40:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensor` is moved into `standard` provider in Airflow 3.0;
|
39 | ExternalTaskMarker()
40 | ExternalTaskSensor()
| ^^^^^^^^^^^^^^^^^^ AIR302
41 | ExternalTaskSensorLink()
|
= help: Install `apache-airflow-providers-standard>=0.0.3` and use `airflow.providers.standard.sensors.external_task.ExternalTaskSensor` instead.
AIR302_standard.py:41:1: AIR302 `airflow.sensors.external_task_sensor.ExternalTaskSensorLink` is moved into `standard` provider in Airflow 3.0;
|
39 | ExternalTaskMarker()
40 | ExternalTaskSensor()
41 | ExternalTaskSensorLink()
| ^^^^^^^^^^^^^^^^^^^^^^ AIR302
42 |
43 | from airflow.operators.dummy_operator import (
|
= help: Install `apache-airflow-providers-standard>=0.0.3` and use `airflow.providers.standard.sensors.external_task.ExternalTaskSensorLink` instead.
AIR302_standard.py:48:1: AIR302 `airflow.operators.dummy_operator.DummyOperator` is moved into `standard` provider in Airflow 3.0;
|
46 | )
47 |
48 | DummyOperator()
| ^^^^^^^^^^^^^ AIR302
49 | EmptyOperator()
|
= help: Install `apache-airflow-providers-standard>=0.0.2` and use `airflow.providers.standard.operators.empty.EmptyOperator` instead.
AIR302_standard.py:49:1: AIR302 `airflow.operators.dummy_operator.EmptyOperator` is moved into `standard` provider in Airflow 3.0;
|
48 | DummyOperator()
49 | EmptyOperator()
| ^^^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-standard>=0.0.2` and use `airflow.providers.standard.operators.empty.EmptyOperator` instead.

View File

@ -0,0 +1,11 @@
---
source: crates/ruff_linter/src/rules/airflow/mod.rs
---
AIR302_zendesk.py:5:1: AIR302 `airflow.hooks.zendesk_hook.ZendeskHook` is moved into `zendesk` provider in Airflow 3.0;
|
3 | from airflow.hooks.zendesk_hook import ZendeskHook
4 |
5 | ZendeskHook()
| ^^^^^^^^^^^ AIR302
|
= help: Install `apache-airflow-providers-zendesk>=1.0.0` and use `airflow.providers.zendesk.hooks.zendesk.ZendeskHook` instead.