mirror of https://github.com/astral-sh/ruff
[`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:
parent
f0868ac0c9
commit
504fa20057
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.executors.dask_executor import DaskExecutor
|
||||
|
||||
DaskExecutor()
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.docker_hook import DockerHook
|
||||
from airflow.operators.docker_operator import DockerOperator
|
||||
|
||||
DockerHook()
|
||||
DockerOperator()
|
||||
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.jdbc_hook import (
|
||||
JdbcHook,
|
||||
jaydebeapi,
|
||||
)
|
||||
|
||||
JdbcHook()
|
||||
jaydebeapi()
|
||||
|
|
@ -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()
|
||||
|
|
@ -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()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.oracle_hook import OracleHook
|
||||
|
||||
OracleHook()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.operators.papermill_operator import PapermillOperator
|
||||
|
||||
PapermillOperator()
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.pig_hook import PigCliHook
|
||||
from airflow.operators.pig_operator import PigOperator
|
||||
|
||||
PigCliHook()
|
||||
PigOperator()
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.postgres_hook import PostgresHook
|
||||
from airflow.operators.postgres_operator import Mapping
|
||||
|
||||
PostgresHook()
|
||||
Mapping()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.presto_hook import PrestoHook
|
||||
|
||||
PrestoHook()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.samba_hook import SambaHook
|
||||
|
||||
SambaHook()
|
||||
|
|
@ -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()
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.operators.email_operator import EmailOperator
|
||||
|
||||
EmailOperator()
|
||||
|
||||
from airflow.operators.email import EmailOperator
|
||||
|
||||
EmailOperator()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.sqlite_hook import SqliteHook
|
||||
|
||||
SqliteHook()
|
||||
|
|
@ -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()
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from airflow.hooks.zendesk_hook import ZendeskHook
|
||||
|
||||
ZendeskHook()
|
||||
|
|
@ -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,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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"))]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -49,13 +49,20 @@ 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; \
|
||||
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,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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()
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
|
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
Loading…
Reference in New Issue