From 54714724b43a565cfe4cc58d8f417af7d76a1b5a Mon Sep 17 00:00:00 2001 From: Jarek Potiuk Date: Tue, 6 Sep 2022 16:49:51 +0200 Subject: [PATCH] Add missing contrib classes to deprecated dictionaries The #26153 missed the classes that were added by deriving a new class from the imported ones. This was mostly about non-consistent spelling of class names. This PR fixes it and brings missing contrib classes back. --- airflow/contrib/hooks/__init__.py | 64 +- airflow/contrib/operators/__init__.py | 1140 ++++++++++++----- airflow/contrib/secrets/__init__.py | 14 +- airflow/contrib/sensors/__init__.py | 49 +- airflow/contrib/utils/__init__.py | 304 +---- airflow/contrib/utils/log/__init__.py | 5 +- dev/contrib/move_contrib.py | 84 -- dev/deprecations/generate_deprecated_dicts.py | 216 ++++ 8 files changed, 1156 insertions(+), 720 deletions(-) delete mode 100644 dev/contrib/move_contrib.py create mode 100644 dev/deprecations/generate_deprecated_dicts.py diff --git a/airflow/contrib/hooks/__init__.py b/airflow/contrib/hooks/__init__.py index fe483d80c2cc5..62247ecf04c11 100644 --- a/airflow/contrib/hooks/__init__.py +++ b/airflow/contrib/hooks/__init__.py @@ -47,6 +47,7 @@ 'AwsBaseHook': 'airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook', '_parse_s3_config': 'airflow.providers.amazon.aws.hooks.base_aws._parse_s3_config', 'boto3': 'airflow.providers.amazon.aws.hooks.base_aws.boto3', + 'AwsHook': 'airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook', }, 'aws_lambda_hook': { 'AwsLambdaHook': 'airflow.providers.amazon.aws.hooks.lambda_function.LambdaHook', @@ -59,18 +60,22 @@ }, 'aws_sqs_hook': { 'SqsHook': 'airflow.providers.amazon.aws.hooks.sqs.SqsHook', + 'SQSHook': 'airflow.providers.amazon.aws.hooks.sqs.SqsHook', }, 'azure_container_instance_hook': { - 'AzureContainerInstanceHook': - 'airflow.providers.microsoft.azure.hooks.container_instance.AzureContainerInstanceHook', + 'AzureContainerInstanceHook': ( + 'airflow.providers.microsoft.azure.hooks.container_instance.AzureContainerInstanceHook' + ), }, 'azure_container_registry_hook': { - 'AzureContainerRegistryHook': - 'airflow.providers.microsoft.azure.hooks.container_registry.AzureContainerRegistryHook', + 'AzureContainerRegistryHook': ( + 'airflow.providers.microsoft.azure.hooks.container_registry.AzureContainerRegistryHook' + ), }, 'azure_container_volume_hook': { - 'AzureContainerVolumeHook': - 'airflow.providers.microsoft.azure.hooks.container_volume.AzureContainerVolumeHook', + 'AzureContainerVolumeHook': ( + 'airflow.providers.microsoft.azure.hooks.container_volume.AzureContainerVolumeHook' + ), }, 'azure_cosmos_hook': { 'AzureCosmosDBHook': 'airflow.providers.microsoft.azure.hooks.cosmos.AzureCosmosDBHook', @@ -102,8 +107,9 @@ 'RUN_NOW_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.RUN_NOW_ENDPOINT', 'START_CLUSTER_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.START_CLUSTER_ENDPOINT', 'SUBMIT_RUN_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.SUBMIT_RUN_ENDPOINT', - 'TERMINATE_CLUSTER_ENDPOINT': - 'airflow.providers.databricks.hooks.databricks.TERMINATE_CLUSTER_ENDPOINT', + 'TERMINATE_CLUSTER_ENDPOINT': ( + 'airflow.providers.databricks.hooks.databricks.TERMINATE_CLUSTER_ENDPOINT' + ), 'DatabricksHook': 'airflow.providers.databricks.hooks.databricks.DatabricksHook', 'RunState': 'airflow.providers.databricks.hooks.databricks.RunState', }, @@ -132,6 +138,7 @@ }, 'gcp_api_base_hook': { 'GoogleBaseHook': 'airflow.providers.google.common.hooks.base_google.GoogleBaseHook', + 'GoogleCloudBaseHook': 'airflow.providers.google.common.hooks.base_google.GoogleBaseHook', }, 'gcp_bigtable_hook': { 'BigtableHook': 'airflow.providers.google.cloud.hooks.bigtable.BigtableHook', @@ -141,15 +148,19 @@ }, 'gcp_compute_hook': { 'ComputeEngineHook': 'airflow.providers.google.cloud.hooks.compute.ComputeEngineHook', + 'GceHook': 'airflow.providers.google.cloud.hooks.compute.ComputeEngineHook', }, 'gcp_container_hook': { 'GKEHook': 'airflow.providers.google.cloud.hooks.kubernetes_engine.GKEHook', + 'GKEClusterHook': 'airflow.providers.google.cloud.hooks.kubernetes_engine.GKEHook', }, 'gcp_dataflow_hook': { 'DataflowHook': 'airflow.providers.google.cloud.hooks.dataflow.DataflowHook', + 'DataFlowHook': 'airflow.providers.google.cloud.hooks.dataflow.DataflowHook', }, 'gcp_dataproc_hook': { 'DataprocHook': 'airflow.providers.google.cloud.hooks.dataproc.DataprocHook', + 'DataProcHook': 'airflow.providers.google.cloud.hooks.dataproc.DataprocHook', }, 'gcp_dlp_hook': { 'CloudDLPHook': 'airflow.providers.google.cloud.hooks.dlp.CloudDLPHook', @@ -157,16 +168,19 @@ }, 'gcp_function_hook': { 'CloudFunctionsHook': 'airflow.providers.google.cloud.hooks.functions.CloudFunctionsHook', + 'GcfHook': 'airflow.providers.google.cloud.hooks.functions.CloudFunctionsHook', }, 'gcp_kms_hook': { 'CloudKMSHook': 'airflow.providers.google.cloud.hooks.kms.CloudKMSHook', + 'GoogleCloudKMSHook': 'airflow.providers.google.cloud.hooks.kms.CloudKMSHook', }, 'gcp_mlengine_hook': { 'MLEngineHook': 'airflow.providers.google.cloud.hooks.mlengine.MLEngineHook', }, 'gcp_natural_language_hook': { - 'CloudNaturalLanguageHook': - 'airflow.providers.google.cloud.hooks.natural_language.CloudNaturalLanguageHook', + 'CloudNaturalLanguageHook': ( + 'airflow.providers.google.cloud.hooks.natural_language.CloudNaturalLanguageHook' + ), }, 'gcp_pubsub_hook': { 'PubSubException': 'airflow.providers.google.cloud.hooks.pubsub.PubSubException', @@ -174,37 +188,47 @@ }, 'gcp_spanner_hook': { 'SpannerHook': 'airflow.providers.google.cloud.hooks.spanner.SpannerHook', + 'CloudSpannerHook': 'airflow.providers.google.cloud.hooks.spanner.SpannerHook', }, 'gcp_speech_to_text_hook': { 'CloudSpeechToTextHook': 'airflow.providers.google.cloud.hooks.speech_to_text.CloudSpeechToTextHook', + 'GCPSpeechToTextHook': 'airflow.providers.google.cloud.hooks.speech_to_text.CloudSpeechToTextHook', }, 'gcp_sql_hook': { 'CloudSQLDatabaseHook': 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLDatabaseHook', 'CloudSQLHook': 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLHook', + 'CloudSqlDatabaseHook': 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLDatabaseHook', + 'CloudSqlHook': 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLHook', }, 'gcp_tasks_hook': { 'CloudTasksHook': 'airflow.providers.google.cloud.hooks.tasks.CloudTasksHook', }, 'gcp_text_to_speech_hook': { 'CloudTextToSpeechHook': 'airflow.providers.google.cloud.hooks.text_to_speech.CloudTextToSpeechHook', + 'GCPTextToSpeechHook': 'airflow.providers.google.cloud.hooks.text_to_speech.CloudTextToSpeechHook', }, 'gcp_transfer_hook': { - 'CloudDataTransferServiceHook': - 'airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.' - 'CloudDataTransferServiceHook', + 'CloudDataTransferServiceHook': ( + 'airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.CloudDataTransferServiceHook' + ), + 'GCPTransferServiceHook': ( + 'airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.CloudDataTransferServiceHook' + ), }, 'gcp_translate_hook': { 'CloudTranslateHook': 'airflow.providers.google.cloud.hooks.translate.CloudTranslateHook', }, 'gcp_video_intelligence_hook': { - 'CloudVideoIntelligenceHook': - 'airflow.providers.google.cloud.hooks.video_intelligence.CloudVideoIntelligenceHook', + 'CloudVideoIntelligenceHook': ( + 'airflow.providers.google.cloud.hooks.video_intelligence.CloudVideoIntelligenceHook' + ), }, 'gcp_vision_hook': { 'CloudVisionHook': 'airflow.providers.google.cloud.hooks.vision.CloudVisionHook', }, 'gcs_hook': { 'GCSHook': 'airflow.providers.google.cloud.hooks.gcs.GCSHook', + 'GoogleCloudStorageHook': 'airflow.providers.google.cloud.hooks.gcs.GCSHook', }, 'gdrive_hook': { 'GoogleDriveHook': 'airflow.providers.google.suite.hooks.drive.GoogleDriveHook', @@ -258,10 +282,12 @@ 'Position': 'airflow.providers.amazon.aws.hooks.sagemaker.Position', 'SageMakerHook': 'airflow.providers.amazon.aws.hooks.sagemaker.SageMakerHook', 'argmin': 'airflow.providers.amazon.aws.hooks.sagemaker.argmin', - 'secondary_training_status_changed': - 'airflow.providers.amazon.aws.hooks.sagemaker.secondary_training_status_changed', - 'secondary_training_status_message': - 'airflow.providers.amazon.aws.hooks.sagemaker.secondary_training_status_message', + 'secondary_training_status_changed': ( + 'airflow.providers.amazon.aws.hooks.sagemaker.secondary_training_status_changed' + ), + 'secondary_training_status_message': ( + 'airflow.providers.amazon.aws.hooks.sagemaker.secondary_training_status_message' + ), }, 'salesforce_hook': { 'SalesforceHook': 'airflow.providers.salesforce.hooks.salesforce.SalesforceHook', diff --git a/airflow/contrib/operators/__init__.py b/airflow/contrib/operators/__init__.py index a316038dd7c37..d3a4c0cdd6194 100644 --- a/airflow/contrib/operators/__init__.py +++ b/airflow/contrib/operators/__init__.py @@ -30,136 +30,244 @@ __deprecated_classes = { 'adls_list_operator': { 'ADLSListOperator': 'airflow.providers.microsoft.azure.operators.adls.ADLSListOperator', + 'AzureDataLakeStorageListOperator': ( + 'airflow.providers.microsoft.azure.operators.adls.ADLSListOperator' + ), }, 'adls_to_gcs': { 'ADLSToGCSOperator': 'airflow.providers.google.cloud.transfers.adls_to_gcs.ADLSToGCSOperator', + 'AdlsToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.adls_to_gcs.ADLSToGCSOperator' + ), }, 'aws_athena_operator': { 'AWSAthenaOperator': 'airflow.providers.amazon.aws.operators.athena.AthenaOperator', }, 'aws_sqs_publish_operator': { 'SqsPublishOperator': 'airflow.providers.amazon.aws.operators.sqs.SqsPublishOperator', + 'SQSPublishOperator': 'airflow.providers.amazon.aws.operators.sqs.SqsPublishOperator', }, 'awsbatch_operator': { 'BatchProtocol': 'airflow.providers.amazon.aws.hooks.batch_client.BatchProtocol', 'BatchOperator': 'airflow.providers.amazon.aws.operators.batch.BatchOperator', + 'AWSBatchOperator': 'airflow.providers.amazon.aws.operators.batch.BatchOperator', }, 'azure_container_instances_operator': { - 'AzureContainerInstancesOperator': - 'airflow.providers.microsoft.azure.operators.container_instances.AzureContainerInstancesOperator', + 'AzureContainerInstancesOperator': ( + 'airflow.providers.microsoft.azure.operators.container_instances.AzureContainerInstancesOperator' + ), }, 'azure_cosmos_operator': { - 'AzureCosmosInsertDocumentOperator': - 'airflow.providers.microsoft.azure.operators.cosmos.AzureCosmosInsertDocumentOperator', + 'AzureCosmosInsertDocumentOperator': ( + 'airflow.providers.microsoft.azure.operators.cosmos.AzureCosmosInsertDocumentOperator' + ), }, 'bigquery_check_operator': { 'BigQueryCheckOperator': 'airflow.providers.google.cloud.operators.bigquery.BigQueryCheckOperator', - 'BigQueryIntervalCheckOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryIntervalCheckOperator', - 'BigQueryValueCheckOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryValueCheckOperator', + 'BigQueryIntervalCheckOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryIntervalCheckOperator' + ), + 'BigQueryValueCheckOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryValueCheckOperator' + ), }, 'bigquery_get_data': { - 'BigQueryGetDataOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryGetDataOperator', + 'BigQueryGetDataOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryGetDataOperator' + ), }, 'bigquery_operator': { - 'BigQueryCreateEmptyDatasetOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryCreateEmptyDatasetOperator', - 'BigQueryCreateEmptyTableOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryCreateEmptyTableOperator', - 'BigQueryCreateExternalTableOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryCreateExternalTableOperator', - 'BigQueryDeleteDatasetOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryDeleteDatasetOperator', - 'BigQueryExecuteQueryOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryExecuteQueryOperator', - 'BigQueryGetDatasetOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryGetDatasetOperator', - 'BigQueryGetDatasetTablesOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryGetDatasetTablesOperator', - 'BigQueryPatchDatasetOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryPatchDatasetOperator', - 'BigQueryUpdateDatasetOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryUpdateDatasetOperator', - 'BigQueryUpsertTableOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryUpsertTableOperator', + 'BigQueryCreateEmptyDatasetOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryCreateEmptyDatasetOperator' + ), + 'BigQueryCreateEmptyTableOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryCreateEmptyTableOperator' + ), + 'BigQueryCreateExternalTableOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryCreateExternalTableOperator' + ), + 'BigQueryDeleteDatasetOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryDeleteDatasetOperator' + ), + 'BigQueryExecuteQueryOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryExecuteQueryOperator' + ), + 'BigQueryGetDatasetOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryGetDatasetOperator' + ), + 'BigQueryGetDatasetTablesOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryGetDatasetTablesOperator' + ), + 'BigQueryPatchDatasetOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryPatchDatasetOperator' + ), + 'BigQueryUpdateDatasetOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryUpdateDatasetOperator' + ), + 'BigQueryUpsertTableOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryUpsertTableOperator' + ), + 'BigQueryOperator': 'airflow.providers.google.cloud.operators.bigquery.BigQueryExecuteQueryOperator', }, 'bigquery_table_delete_operator': { - 'BigQueryDeleteTableOperator': - 'airflow.providers.google.cloud.operators.bigquery.BigQueryDeleteTableOperator', + 'BigQueryDeleteTableOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryDeleteTableOperator' + ), + 'BigQueryTableDeleteOperator': ( + 'airflow.providers.google.cloud.operators.bigquery.BigQueryDeleteTableOperator' + ), }, 'bigquery_to_bigquery': { - 'BigQueryToBigQueryOperator': - 'airflow.providers.google.cloud.transfers.bigquery_to_bigquery.BigQueryToBigQueryOperator', + 'BigQueryToBigQueryOperator': ( + 'airflow.providers.google.cloud.transfers.bigquery_to_bigquery.BigQueryToBigQueryOperator' + ), }, 'bigquery_to_gcs': { - 'BigQueryToGCSOperator': - 'airflow.providers.google.cloud.transfers.bigquery_to_gcs.BigQueryToGCSOperator', + 'BigQueryToGCSOperator': ( + 'airflow.providers.google.cloud.transfers.bigquery_to_gcs.BigQueryToGCSOperator' + ), + 'BigQueryToCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.bigquery_to_gcs.BigQueryToGCSOperator' + ), }, 'bigquery_to_mysql_operator': { - 'BigQueryToMySqlOperator': - 'airflow.providers.google.cloud.transfers.bigquery_to_mysql.BigQueryToMySqlOperator', + 'BigQueryToMySqlOperator': ( + 'airflow.providers.google.cloud.transfers.bigquery_to_mysql.BigQueryToMySqlOperator' + ), }, 'cassandra_to_gcs': { - 'CassandraToGCSOperator': - 'airflow.providers.google.cloud.transfers.cassandra_to_gcs.CassandraToGCSOperator', + 'CassandraToGCSOperator': ( + 'airflow.providers.google.cloud.transfers.cassandra_to_gcs.CassandraToGCSOperator' + ), + 'CassandraToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.cassandra_to_gcs.CassandraToGCSOperator' + ), }, 'databricks_operator': { - 'DatabricksRunNowOperator': - 'airflow.providers.databricks.operators.databricks.DatabricksRunNowOperator', - 'DatabricksSubmitRunOperator': - 'airflow.providers.databricks.operators.databricks.DatabricksSubmitRunOperator', + 'DatabricksRunNowOperator': ( + 'airflow.providers.databricks.operators.databricks.DatabricksRunNowOperator' + ), + 'DatabricksSubmitRunOperator': ( + 'airflow.providers.databricks.operators.databricks.DatabricksSubmitRunOperator' + ), }, 'dataflow_operator': { - 'DataflowCreateJavaJobOperator': - 'airflow.providers.google.cloud.operators.dataflow.DataflowCreateJavaJobOperator', - 'DataflowCreatePythonJobOperator': - 'airflow.providers.google.cloud.operators.dataflow.DataflowCreatePythonJobOperator', - 'DataflowTemplatedJobStartOperator': - 'airflow.providers.google.cloud.operators.dataflow.DataflowTemplatedJobStartOperator', + 'DataflowCreateJavaJobOperator': ( + 'airflow.providers.google.cloud.operators.dataflow.DataflowCreateJavaJobOperator' + ), + 'DataflowCreatePythonJobOperator': ( + 'airflow.providers.google.cloud.operators.dataflow.DataflowCreatePythonJobOperator' + ), + 'DataflowTemplatedJobStartOperator': ( + 'airflow.providers.google.cloud.operators.dataflow.DataflowTemplatedJobStartOperator' + ), + 'DataFlowJavaOperator': ( + 'airflow.providers.google.cloud.operators.dataflow.DataflowCreateJavaJobOperator' + ), + 'DataFlowPythonOperator': ( + 'airflow.providers.google.cloud.operators.dataflow.DataflowCreatePythonJobOperator' + ), + 'DataflowTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dataflow.DataflowTemplatedJobStartOperator' + ), }, 'dataproc_operator': { - 'DataprocCreateClusterOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocCreateClusterOperator', - 'DataprocDeleteClusterOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocDeleteClusterOperator', + 'DataprocCreateClusterOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocCreateClusterOperator' + ), + 'DataprocDeleteClusterOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocDeleteClusterOperator' + ), 'DataprocInstantiateInlineWorkflowTemplateOperator': 'airflow.providers.google.cloud.operators.dataproc.' 'DataprocInstantiateInlineWorkflowTemplateOperator', - 'DataprocInstantiateWorkflowTemplateOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocInstantiateWorkflowTemplateOperator', - 'DataprocJobBaseOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocJobBaseOperator', - 'DataprocScaleClusterOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocScaleClusterOperator', - 'DataprocSubmitHadoopJobOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitHadoopJobOperator', - 'DataprocSubmitHiveJobOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitHiveJobOperator', - 'DataprocSubmitPigJobOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitPigJobOperator', - 'DataprocSubmitPySparkJobOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitPySparkJobOperator', - 'DataprocSubmitSparkJobOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitSparkJobOperator', - 'DataprocSubmitSparkSqlJobOperator': - 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitSparkSqlJobOperator', + 'DataprocInstantiateWorkflowTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocInstantiateWorkflowTemplateOperator' + ), + 'DataprocJobBaseOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocJobBaseOperator' + ), + 'DataprocScaleClusterOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocScaleClusterOperator' + ), + 'DataprocSubmitHadoopJobOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitHadoopJobOperator' + ), + 'DataprocSubmitHiveJobOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitHiveJobOperator' + ), + 'DataprocSubmitPigJobOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitPigJobOperator' + ), + 'DataprocSubmitPySparkJobOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitPySparkJobOperator' + ), + 'DataprocSubmitSparkJobOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitSparkJobOperator' + ), + 'DataprocSubmitSparkSqlJobOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitSparkSqlJobOperator' + ), + 'DataprocClusterCreateOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocCreateClusterOperator' + ), + 'DataprocClusterDeleteOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocDeleteClusterOperator' + ), + 'DataprocClusterScaleOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocScaleClusterOperator' + ), + 'DataProcHadoopOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitHadoopJobOperator' + ), + 'DataProcHiveOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitHiveJobOperator' + ), + 'DataProcJobBaseOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocJobBaseOperator' + ), + 'DataProcPigOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitPigJobOperator' + ), + 'DataProcPySparkOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitPySparkJobOperator' + ), + 'DataProcSparkOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitSparkJobOperator' + ), + 'DataProcSparkSqlOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocSubmitSparkSqlJobOperator' + ), + 'DataprocWorkflowTemplateInstantiateInlineOperator': + 'airflow.providers.google.cloud.operators.dataproc.' + 'DataprocInstantiateInlineWorkflowTemplateOperator', + 'DataprocWorkflowTemplateInstantiateOperator': ( + 'airflow.providers.google.cloud.operators.dataproc.DataprocInstantiateWorkflowTemplateOperator' + ), }, 'datastore_export_operator': { - 'CloudDatastoreExportEntitiesOperator': - 'airflow.providers.google.cloud.operators.datastore.CloudDatastoreExportEntitiesOperator', + 'CloudDatastoreExportEntitiesOperator': ( + 'airflow.providers.google.cloud.operators.datastore.CloudDatastoreExportEntitiesOperator' + ), + 'DatastoreExportOperator': ( + 'airflow.providers.google.cloud.operators.datastore.CloudDatastoreExportEntitiesOperator' + ), }, 'datastore_import_operator': { - 'CloudDatastoreImportEntitiesOperator': - 'airflow.providers.google.cloud.operators.datastore.CloudDatastoreImportEntitiesOperator', + 'CloudDatastoreImportEntitiesOperator': ( + 'airflow.providers.google.cloud.operators.datastore.CloudDatastoreImportEntitiesOperator' + ), + 'DatastoreImportOperator': ( + 'airflow.providers.google.cloud.operators.datastore.CloudDatastoreImportEntitiesOperator' + ), }, 'dingding_operator': { 'DingdingOperator': 'airflow.providers.dingding.operators.dingding.DingdingOperator', }, 'discord_webhook_operator': { - 'DiscordWebhookOperator': - 'airflow.providers.discord.operators.discord_webhook.DiscordWebhookOperator', + 'DiscordWebhookOperator': ( + 'airflow.providers.discord.operators.discord_webhook.DiscordWebhookOperator' + ), }, 'docker_swarm_operator': { 'DockerSwarmOperator': 'airflow.providers.docker.operators.docker_swarm.DockerSwarmOperator', @@ -173,122 +281,234 @@ 'ecs_operator': { 'EcsProtocol': 'airflow.providers.amazon.aws.hooks.ecs.EcsProtocol', 'EcsRunTaskOperator': 'airflow.providers.amazon.aws.operators.ecs.EcsRunTaskOperator', + 'EcsOperator': 'airflow.providers.amazon.aws.operators.ecs.EcsRunTaskOperator', }, 'file_to_gcs': { - 'LocalFilesystemToGCSOperator': - 'airflow.providers.google.cloud.transfers.local_to_gcs.LocalFilesystemToGCSOperator', + 'LocalFilesystemToGCSOperator': ( + 'airflow.providers.google.cloud.transfers.local_to_gcs.LocalFilesystemToGCSOperator' + ), + 'FileToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.local_to_gcs.LocalFilesystemToGCSOperator' + ), }, 'file_to_wasb': { - 'LocalFilesystemToWasbOperator': - 'airflow.providers.microsoft.azure.transfers.local_to_wasb.LocalFilesystemToWasbOperator', + 'LocalFilesystemToWasbOperator': ( + 'airflow.providers.microsoft.azure.transfers.local_to_wasb.LocalFilesystemToWasbOperator' + ), + 'FileToWasbOperator': ( + 'airflow.providers.microsoft.azure.transfers.local_to_wasb.LocalFilesystemToWasbOperator' + ), }, 'gcp_bigtable_operator': { - 'BigtableCreateInstanceOperator': - 'airflow.providers.google.cloud.operators.bigtable.BigtableCreateInstanceOperator', - 'BigtableCreateTableOperator': - 'airflow.providers.google.cloud.operators.bigtable.BigtableCreateTableOperator', - 'BigtableDeleteInstanceOperator': - 'airflow.providers.google.cloud.operators.bigtable.BigtableDeleteInstanceOperator', - 'BigtableDeleteTableOperator': - 'airflow.providers.google.cloud.operators.bigtable.BigtableDeleteTableOperator', - 'BigtableUpdateClusterOperator': - 'airflow.providers.google.cloud.operators.bigtable.BigtableUpdateClusterOperator', - 'BigtableTableReplicationCompletedSensor': - 'airflow.providers.google.cloud.sensors.bigtable.BigtableTableReplicationCompletedSensor', + 'BigtableCreateInstanceOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableCreateInstanceOperator' + ), + 'BigtableCreateTableOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableCreateTableOperator' + ), + 'BigtableDeleteInstanceOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableDeleteInstanceOperator' + ), + 'BigtableDeleteTableOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableDeleteTableOperator' + ), + 'BigtableUpdateClusterOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableUpdateClusterOperator' + ), + 'BigtableTableReplicationCompletedSensor': ( + 'airflow.providers.google.cloud.sensors.bigtable.BigtableTableReplicationCompletedSensor' + ), + 'BigtableClusterUpdateOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableUpdateClusterOperator' + ), + 'BigtableInstanceCreateOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableCreateInstanceOperator' + ), + 'BigtableInstanceDeleteOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableDeleteInstanceOperator' + ), + 'BigtableTableCreateOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableCreateTableOperator' + ), + 'BigtableTableDeleteOperator': ( + 'airflow.providers.google.cloud.operators.bigtable.BigtableDeleteTableOperator' + ), + 'BigtableTableWaitForReplicationSensor': ( + 'airflow.providers.google.cloud.sensors.bigtable.BigtableTableReplicationCompletedSensor' + ), }, 'gcp_cloud_build_operator': { - 'CloudBuildCreateBuildOperator': - 'airflow.providers.google.cloud.operators.cloud_build.CloudBuildCreateBuildOperator', + 'CloudBuildCreateBuildOperator': ( + 'airflow.providers.google.cloud.operators.cloud_build.CloudBuildCreateBuildOperator' + ), }, 'gcp_compute_operator': { - 'ComputeEngineBaseOperator': - 'airflow.providers.google.cloud.operators.compute.ComputeEngineBaseOperator', - 'ComputeEngineCopyInstanceTemplateOperator': - 'airflow.providers.google.cloud.operators.compute.ComputeEngineCopyInstanceTemplateOperator', + 'ComputeEngineBaseOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineBaseOperator' + ), + 'ComputeEngineCopyInstanceTemplateOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineCopyInstanceTemplateOperator' + ), 'ComputeEngineInstanceGroupUpdateManagerTemplateOperator': 'airflow.providers.google.cloud.operators.compute.' 'ComputeEngineInstanceGroupUpdateManagerTemplateOperator', - 'ComputeEngineSetMachineTypeOperator': - 'airflow.providers.google.cloud.operators.compute.ComputeEngineSetMachineTypeOperator', - 'ComputeEngineStartInstanceOperator': - 'airflow.providers.google.cloud.operators.compute.ComputeEngineStartInstanceOperator', - 'ComputeEngineStopInstanceOperator': - 'airflow.providers.google.cloud.operators.compute.ComputeEngineStopInstanceOperator', + 'ComputeEngineSetMachineTypeOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineSetMachineTypeOperator' + ), + 'ComputeEngineStartInstanceOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineStartInstanceOperator' + ), + 'ComputeEngineStopInstanceOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineStopInstanceOperator' + ), + 'GceBaseOperator': 'airflow.providers.google.cloud.operators.compute.ComputeEngineBaseOperator', + 'GceInstanceGroupManagerUpdateTemplateOperator': + 'airflow.providers.google.cloud.operators.compute.' + 'ComputeEngineInstanceGroupUpdateManagerTemplateOperator', + 'GceInstanceStartOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineStartInstanceOperator' + ), + 'GceInstanceStopOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineStopInstanceOperator' + ), + 'GceInstanceTemplateCopyOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineCopyInstanceTemplateOperator' + ), + 'GceSetMachineTypeOperator': ( + 'airflow.providers.google.cloud.operators.compute.ComputeEngineSetMachineTypeOperator' + ), }, 'gcp_container_operator': { - 'GKECreateClusterOperator': - 'airflow.providers.google.cloud.operators.kubernetes_engine.GKECreateClusterOperator', - 'GKEDeleteClusterOperator': - 'airflow.providers.google.cloud.operators.kubernetes_engine.GKEDeleteClusterOperator', - 'GKEStartPodOperator': - 'airflow.providers.google.cloud.operators.kubernetes_engine.GKEStartPodOperator', + 'GKECreateClusterOperator': ( + 'airflow.providers.google.cloud.operators.kubernetes_engine.GKECreateClusterOperator' + ), + 'GKEDeleteClusterOperator': ( + 'airflow.providers.google.cloud.operators.kubernetes_engine.GKEDeleteClusterOperator' + ), + 'GKEStartPodOperator': ( + 'airflow.providers.google.cloud.operators.kubernetes_engine.GKEStartPodOperator' + ), + 'GKEClusterCreateOperator': ( + 'airflow.providers.google.cloud.operators.kubernetes_engine.GKECreateClusterOperator' + ), + 'GKEClusterDeleteOperator': ( + 'airflow.providers.google.cloud.operators.kubernetes_engine.GKEDeleteClusterOperator' + ), + 'GKEPodOperator': 'airflow.providers.google.cloud.operators.kubernetes_engine.GKEStartPodOperator', }, 'gcp_dlp_operator': { - 'CloudDLPCancelDLPJobOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPCancelDLPJobOperator', - 'CloudDLPCreateDeidentifyTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateDeidentifyTemplateOperator', - 'CloudDLPCreateDLPJobOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateDLPJobOperator', - 'CloudDLPCreateInspectTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateInspectTemplateOperator', - 'CloudDLPCreateJobTriggerOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateJobTriggerOperator', - 'CloudDLPCreateStoredInfoTypeOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateStoredInfoTypeOperator', - 'CloudDLPDeidentifyContentOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeidentifyContentOperator', - 'CloudDLPDeleteDeidentifyTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteDeidentifyTemplateOperator', - 'CloudDLPDeleteDLPJobOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteDLPJobOperator', - 'CloudDLPDeleteInspectTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteInspectTemplateOperator', - 'CloudDLPDeleteJobTriggerOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteJobTriggerOperator', - 'CloudDLPDeleteStoredInfoTypeOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteStoredInfoTypeOperator', - 'CloudDLPGetDeidentifyTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetDeidentifyTemplateOperator', + 'CloudDLPCancelDLPJobOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPCancelDLPJobOperator' + ), + 'CloudDLPCreateDeidentifyTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateDeidentifyTemplateOperator' + ), + 'CloudDLPCreateDLPJobOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateDLPJobOperator' + ), + 'CloudDLPCreateInspectTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateInspectTemplateOperator' + ), + 'CloudDLPCreateJobTriggerOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateJobTriggerOperator' + ), + 'CloudDLPCreateStoredInfoTypeOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPCreateStoredInfoTypeOperator' + ), + 'CloudDLPDeidentifyContentOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeidentifyContentOperator' + ), + 'CloudDLPDeleteDeidentifyTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteDeidentifyTemplateOperator' + ), + 'CloudDLPDeleteDLPJobOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteDLPJobOperator' + ), + 'CloudDLPDeleteInspectTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteInspectTemplateOperator' + ), + 'CloudDLPDeleteJobTriggerOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteJobTriggerOperator' + ), + 'CloudDLPDeleteStoredInfoTypeOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteStoredInfoTypeOperator' + ), + 'CloudDLPGetDeidentifyTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetDeidentifyTemplateOperator' + ), 'CloudDLPGetDLPJobOperator': 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetDLPJobOperator', - 'CloudDLPGetDLPJobTriggerOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetDLPJobTriggerOperator', - 'CloudDLPGetInspectTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetInspectTemplateOperator', - 'CloudDLPGetStoredInfoTypeOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetStoredInfoTypeOperator', - 'CloudDLPInspectContentOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPInspectContentOperator', - 'CloudDLPListDeidentifyTemplatesOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPListDeidentifyTemplatesOperator', - 'CloudDLPListDLPJobsOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPListDLPJobsOperator', - 'CloudDLPListInfoTypesOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPListInfoTypesOperator', - 'CloudDLPListInspectTemplatesOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPListInspectTemplatesOperator', - 'CloudDLPListJobTriggersOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPListJobTriggersOperator', - 'CloudDLPListStoredInfoTypesOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPListStoredInfoTypesOperator', - 'CloudDLPRedactImageOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPRedactImageOperator', - 'CloudDLPReidentifyContentOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPReidentifyContentOperator', - 'CloudDLPUpdateDeidentifyTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateDeidentifyTemplateOperator', - 'CloudDLPUpdateInspectTemplateOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateInspectTemplateOperator', - 'CloudDLPUpdateJobTriggerOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateJobTriggerOperator', - 'CloudDLPUpdateStoredInfoTypeOperator': - 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateStoredInfoTypeOperator', + 'CloudDLPGetDLPJobTriggerOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetDLPJobTriggerOperator' + ), + 'CloudDLPGetInspectTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetInspectTemplateOperator' + ), + 'CloudDLPGetStoredInfoTypeOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetStoredInfoTypeOperator' + ), + 'CloudDLPInspectContentOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPInspectContentOperator' + ), + 'CloudDLPListDeidentifyTemplatesOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPListDeidentifyTemplatesOperator' + ), + 'CloudDLPListDLPJobsOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPListDLPJobsOperator' + ), + 'CloudDLPListInfoTypesOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPListInfoTypesOperator' + ), + 'CloudDLPListInspectTemplatesOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPListInspectTemplatesOperator' + ), + 'CloudDLPListJobTriggersOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPListJobTriggersOperator' + ), + 'CloudDLPListStoredInfoTypesOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPListStoredInfoTypesOperator' + ), + 'CloudDLPRedactImageOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPRedactImageOperator' + ), + 'CloudDLPReidentifyContentOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPReidentifyContentOperator' + ), + 'CloudDLPUpdateDeidentifyTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateDeidentifyTemplateOperator' + ), + 'CloudDLPUpdateInspectTemplateOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateInspectTemplateOperator' + ), + 'CloudDLPUpdateJobTriggerOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateJobTriggerOperator' + ), + 'CloudDLPUpdateStoredInfoTypeOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPUpdateStoredInfoTypeOperator' + ), + 'CloudDLPDeleteDlpJobOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPDeleteDLPJobOperator' + ), + 'CloudDLPGetDlpJobOperator': 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetDLPJobOperator', + 'CloudDLPGetJobTripperOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPGetDLPJobTriggerOperator' + ), + 'CloudDLPListDlpJobsOperator': ( + 'airflow.providers.google.cloud.operators.dlp.CloudDLPListDLPJobsOperator' + ), }, 'gcp_function_operator': { - 'CloudFunctionDeleteFunctionOperator': - 'airflow.providers.google.cloud.operators.functions.CloudFunctionDeleteFunctionOperator', - 'CloudFunctionDeployFunctionOperator': - 'airflow.providers.google.cloud.operators.functions.CloudFunctionDeployFunctionOperator', + 'CloudFunctionDeleteFunctionOperator': ( + 'airflow.providers.google.cloud.operators.functions.CloudFunctionDeleteFunctionOperator' + ), + 'CloudFunctionDeployFunctionOperator': ( + 'airflow.providers.google.cloud.operators.functions.CloudFunctionDeployFunctionOperator' + ), + 'GcfFunctionDeleteOperator': ( + 'airflow.providers.google.cloud.operators.functions.CloudFunctionDeleteFunctionOperator' + ), + 'GcfFunctionDeployOperator': ( + 'airflow.providers.google.cloud.operators.functions.CloudFunctionDeployFunctionOperator' + ), }, 'gcp_natural_language_operator': { 'CloudNaturalLanguageAnalyzeEntitiesOperator': @@ -303,78 +523,171 @@ 'CloudNaturalLanguageClassifyTextOperator': 'airflow.providers.google.cloud.operators.natural_language.' 'CloudNaturalLanguageClassifyTextOperator', + 'CloudLanguageAnalyzeEntitiesOperator': + 'airflow.providers.google.cloud.operators.natural_language.' + 'CloudNaturalLanguageAnalyzeEntitiesOperator', + 'CloudLanguageAnalyzeEntitySentimentOperator': + 'airflow.providers.google.cloud.operators.natural_language.' + 'CloudNaturalLanguageAnalyzeEntitySentimentOperator', + 'CloudLanguageAnalyzeSentimentOperator': + 'airflow.providers.google.cloud.operators.natural_language.' + 'CloudNaturalLanguageAnalyzeSentimentOperator', + 'CloudLanguageClassifyTextOperator': + 'airflow.providers.google.cloud.operators.natural_language.' + 'CloudNaturalLanguageClassifyTextOperator', }, 'gcp_spanner_operator': { - 'SpannerDeleteDatabaseInstanceOperator': - 'airflow.providers.google.cloud.operators.spanner.SpannerDeleteDatabaseInstanceOperator', - 'SpannerDeleteInstanceOperator': - 'airflow.providers.google.cloud.operators.spanner.SpannerDeleteInstanceOperator', - 'SpannerDeployDatabaseInstanceOperator': - 'airflow.providers.google.cloud.operators.spanner.SpannerDeployDatabaseInstanceOperator', - 'SpannerDeployInstanceOperator': - 'airflow.providers.google.cloud.operators.spanner.SpannerDeployInstanceOperator', - 'SpannerQueryDatabaseInstanceOperator': - 'airflow.providers.google.cloud.operators.spanner.SpannerQueryDatabaseInstanceOperator', - 'SpannerUpdateDatabaseInstanceOperator': - 'airflow.providers.google.cloud.operators.spanner.SpannerUpdateDatabaseInstanceOperator', + 'SpannerDeleteDatabaseInstanceOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeleteDatabaseInstanceOperator' + ), + 'SpannerDeleteInstanceOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeleteInstanceOperator' + ), + 'SpannerDeployDatabaseInstanceOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeployDatabaseInstanceOperator' + ), + 'SpannerDeployInstanceOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeployInstanceOperator' + ), + 'SpannerQueryDatabaseInstanceOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerQueryDatabaseInstanceOperator' + ), + 'SpannerUpdateDatabaseInstanceOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerUpdateDatabaseInstanceOperator' + ), + 'CloudSpannerInstanceDatabaseDeleteOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeleteDatabaseInstanceOperator' + ), + 'CloudSpannerInstanceDatabaseDeployOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeployDatabaseInstanceOperator' + ), + 'CloudSpannerInstanceDatabaseQueryOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerQueryDatabaseInstanceOperator' + ), + 'CloudSpannerInstanceDatabaseUpdateOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerUpdateDatabaseInstanceOperator' + ), + 'CloudSpannerInstanceDeleteOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeleteInstanceOperator' + ), + 'CloudSpannerInstanceDeployOperator': ( + 'airflow.providers.google.cloud.operators.spanner.SpannerDeployInstanceOperator' + ), }, 'gcp_speech_to_text_operator': { - 'CloudSpeechToTextRecognizeSpeechOperator': - 'airflow.providers.google.cloud.operators.speech_to_text.' - 'CloudSpeechToTextRecognizeSpeechOperator', + 'CloudSpeechToTextRecognizeSpeechOperator': ( + 'airflow.providers.google.cloud.operators.speech_to_text.CloudSpeechToTextRecognizeSpeechOperator' + ), + 'GcpSpeechToTextRecognizeSpeechOperator': ( + 'airflow.providers.google.cloud.operators.speech_to_text.CloudSpeechToTextRecognizeSpeechOperator' + ), }, 'gcp_sql_operator': { 'CloudSQLBaseOperator': 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLBaseOperator', - 'CloudSQLCreateInstanceDatabaseOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceDatabaseOperator', - 'CloudSQLCreateInstanceOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceOperator', - 'CloudSQLDeleteInstanceDatabaseOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceDatabaseOperator', - 'CloudSQLDeleteInstanceOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceOperator', - 'CloudSQLExecuteQueryOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExecuteQueryOperator', - 'CloudSQLExportInstanceOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExportInstanceOperator', - 'CloudSQLImportInstanceOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLImportInstanceOperator', - 'CloudSQLInstancePatchOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLInstancePatchOperator', - 'CloudSQLPatchInstanceDatabaseOperator': - 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLPatchInstanceDatabaseOperator', + 'CloudSQLCreateInstanceDatabaseOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceDatabaseOperator' + ), + 'CloudSQLCreateInstanceOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceOperator' + ), + 'CloudSQLDeleteInstanceDatabaseOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceDatabaseOperator' + ), + 'CloudSQLDeleteInstanceOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceOperator' + ), + 'CloudSQLExecuteQueryOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExecuteQueryOperator' + ), + 'CloudSQLExportInstanceOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExportInstanceOperator' + ), + 'CloudSQLImportInstanceOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLImportInstanceOperator' + ), + 'CloudSQLInstancePatchOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLInstancePatchOperator' + ), + 'CloudSQLPatchInstanceDatabaseOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLPatchInstanceDatabaseOperator' + ), + 'CloudSqlBaseOperator': 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLBaseOperator', + 'CloudSqlInstanceCreateOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceOperator' + ), + 'CloudSqlInstanceDatabaseCreateOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceDatabaseOperator' + ), + 'CloudSqlInstanceDatabaseDeleteOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceDatabaseOperator' + ), + 'CloudSqlInstanceDatabasePatchOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLPatchInstanceDatabaseOperator' + ), + 'CloudSqlInstanceDeleteOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceOperator' + ), + 'CloudSqlInstanceExportOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExportInstanceOperator' + ), + 'CloudSqlInstanceImportOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLImportInstanceOperator' + ), + 'CloudSqlInstancePatchOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLInstancePatchOperator' + ), + 'CloudSqlQueryOperator': ( + 'airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExecuteQueryOperator' + ), }, 'gcp_tasks_operator': { - 'CloudTasksQueueCreateOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueCreateOperator', - 'CloudTasksQueueDeleteOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueDeleteOperator', - 'CloudTasksQueueGetOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueGetOperator', - 'CloudTasksQueuePauseOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueuePauseOperator', - 'CloudTasksQueuePurgeOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueuePurgeOperator', - 'CloudTasksQueueResumeOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueResumeOperator', - 'CloudTasksQueuesListOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueuesListOperator', - 'CloudTasksQueueUpdateOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueUpdateOperator', - 'CloudTasksTaskCreateOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskCreateOperator', - 'CloudTasksTaskDeleteOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskDeleteOperator', - 'CloudTasksTaskGetOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskGetOperator', - 'CloudTasksTaskRunOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskRunOperator', - 'CloudTasksTasksListOperator': - 'airflow.providers.google.cloud.operators.tasks.CloudTasksTasksListOperator', + 'CloudTasksQueueCreateOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueCreateOperator' + ), + 'CloudTasksQueueDeleteOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueDeleteOperator' + ), + 'CloudTasksQueueGetOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueGetOperator' + ), + 'CloudTasksQueuePauseOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueuePauseOperator' + ), + 'CloudTasksQueuePurgeOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueuePurgeOperator' + ), + 'CloudTasksQueueResumeOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueResumeOperator' + ), + 'CloudTasksQueuesListOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueuesListOperator' + ), + 'CloudTasksQueueUpdateOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksQueueUpdateOperator' + ), + 'CloudTasksTaskCreateOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskCreateOperator' + ), + 'CloudTasksTaskDeleteOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskDeleteOperator' + ), + 'CloudTasksTaskGetOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskGetOperator' + ), + 'CloudTasksTaskRunOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksTaskRunOperator' + ), + 'CloudTasksTasksListOperator': ( + 'airflow.providers.google.cloud.operators.tasks.CloudTasksTasksListOperator' + ), }, 'gcp_text_to_speech_operator': { - 'CloudTextToSpeechSynthesizeOperator': - 'airflow.providers.google.cloud.operators.text_to_speech.CloudTextToSpeechSynthesizeOperator', + 'CloudTextToSpeechSynthesizeOperator': ( + 'airflow.providers.google.cloud.operators.text_to_speech.CloudTextToSpeechSynthesizeOperator' + ), + 'GcpTextToSpeechSynthesizeOperator': ( + 'airflow.providers.google.cloud.operators.text_to_speech.CloudTextToSpeechSynthesizeOperator' + ), }, 'gcp_transfer_operator': { 'CloudDataTransferServiceCancelOperationOperator': @@ -407,14 +720,49 @@ 'CloudDataTransferServiceUpdateJobOperator': 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' 'CloudDataTransferServiceUpdateJobOperator', + 'GcpTransferServiceJobCreateOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceCreateJobOperator', + 'GcpTransferServiceJobDeleteOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceDeleteJobOperator', + 'GcpTransferServiceJobUpdateOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceUpdateJobOperator', + 'GcpTransferServiceOperationCancelOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceCancelOperationOperator', + 'GcpTransferServiceOperationGetOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceGetOperationOperator', + 'GcpTransferServiceOperationPauseOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServicePauseOperationOperator', + 'GcpTransferServiceOperationResumeOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceResumeOperationOperator', + 'GcpTransferServiceOperationsListOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceListOperationsOperator', + 'GoogleCloudStorageToGoogleCloudStorageTransferOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceGCSToGCSOperator', + 'S3ToGoogleCloudStorageTransferOperator': + 'airflow.providers.google.cloud.operators.cloud_storage_transfer_service.' + 'CloudDataTransferServiceS3ToGCSOperator', }, 'gcp_translate_operator': { - 'CloudTranslateTextOperator': - 'airflow.providers.google.cloud.operators.translate.CloudTranslateTextOperator', + 'CloudTranslateTextOperator': ( + 'airflow.providers.google.cloud.operators.translate.CloudTranslateTextOperator' + ), }, 'gcp_translate_speech_operator': { - 'CloudTranslateSpeechOperator': - 'airflow.providers.google.cloud.operators.translate_speech.CloudTranslateSpeechOperator', + 'CloudTranslateSpeechOperator': ( + 'airflow.providers.google.cloud.operators.translate_speech.CloudTranslateSpeechOperator' + ), + 'GcpTranslateSpeechOperator': ( + 'airflow.providers.google.cloud.operators.translate_speech.CloudTranslateSpeechOperator' + ), }, 'gcp_video_intelligence_operator': { 'CloudVideoIntelligenceDetectVideoExplicitContentOperator': @@ -428,146 +776,282 @@ 'CloudVideoIntelligenceDetectVideoShotsOperator', }, 'gcp_vision_operator': { - 'CloudVisionAddProductToProductSetOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionAddProductToProductSetOperator', - 'CloudVisionCreateProductOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateProductOperator', - 'CloudVisionCreateProductSetOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateProductSetOperator', - 'CloudVisionCreateReferenceImageOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateReferenceImageOperator', - 'CloudVisionDeleteProductOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionDeleteProductOperator', - 'CloudVisionDeleteProductSetOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionDeleteProductSetOperator', - 'CloudVisionDetectImageLabelsOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionDetectImageLabelsOperator', - 'CloudVisionDetectImageSafeSearchOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionDetectImageSafeSearchOperator', - 'CloudVisionDetectTextOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionDetectTextOperator', - 'CloudVisionGetProductOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionGetProductOperator', - 'CloudVisionGetProductSetOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionGetProductSetOperator', - 'CloudVisionImageAnnotateOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionImageAnnotateOperator', - 'CloudVisionRemoveProductFromProductSetOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionRemoveProductFromProductSetOperator', - 'CloudVisionTextDetectOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionTextDetectOperator', - 'CloudVisionUpdateProductOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionUpdateProductOperator', - 'CloudVisionUpdateProductSetOperator': - 'airflow.providers.google.cloud.operators.vision.CloudVisionUpdateProductSetOperator', + 'CloudVisionAddProductToProductSetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionAddProductToProductSetOperator' + ), + 'CloudVisionCreateProductOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateProductOperator' + ), + 'CloudVisionCreateProductSetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateProductSetOperator' + ), + 'CloudVisionCreateReferenceImageOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateReferenceImageOperator' + ), + 'CloudVisionDeleteProductOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionDeleteProductOperator' + ), + 'CloudVisionDeleteProductSetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionDeleteProductSetOperator' + ), + 'CloudVisionDetectImageLabelsOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionDetectImageLabelsOperator' + ), + 'CloudVisionDetectImageSafeSearchOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionDetectImageSafeSearchOperator' + ), + 'CloudVisionDetectTextOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionDetectTextOperator' + ), + 'CloudVisionGetProductOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionGetProductOperator' + ), + 'CloudVisionGetProductSetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionGetProductSetOperator' + ), + 'CloudVisionImageAnnotateOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionImageAnnotateOperator' + ), + 'CloudVisionRemoveProductFromProductSetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionRemoveProductFromProductSetOperator' + ), + 'CloudVisionTextDetectOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionTextDetectOperator' + ), + 'CloudVisionUpdateProductOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionUpdateProductOperator' + ), + 'CloudVisionUpdateProductSetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionUpdateProductSetOperator' + ), + 'CloudVisionAnnotateImageOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionImageAnnotateOperator' + ), + 'CloudVisionDetectDocumentTextOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionTextDetectOperator' + ), + 'CloudVisionProductCreateOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateProductOperator' + ), + 'CloudVisionProductDeleteOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionDeleteProductOperator' + ), + 'CloudVisionProductGetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionGetProductOperator' + ), + 'CloudVisionProductSetCreateOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateProductSetOperator' + ), + 'CloudVisionProductSetDeleteOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionDeleteProductSetOperator' + ), + 'CloudVisionProductSetGetOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionGetProductSetOperator' + ), + 'CloudVisionProductSetUpdateOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionUpdateProductSetOperator' + ), + 'CloudVisionProductUpdateOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionUpdateProductOperator' + ), + 'CloudVisionReferenceImageCreateOperator': ( + 'airflow.providers.google.cloud.operators.vision.CloudVisionCreateReferenceImageOperator' + ), }, 'gcs_acl_operator': { - 'GCSBucketCreateAclEntryOperator': - 'airflow.providers.google.cloud.operators.gcs.GCSBucketCreateAclEntryOperator', - 'GCSObjectCreateAclEntryOperator': - 'airflow.providers.google.cloud.operators.gcs.GCSObjectCreateAclEntryOperator', + 'GCSBucketCreateAclEntryOperator': ( + 'airflow.providers.google.cloud.operators.gcs.GCSBucketCreateAclEntryOperator' + ), + 'GCSObjectCreateAclEntryOperator': ( + 'airflow.providers.google.cloud.operators.gcs.GCSObjectCreateAclEntryOperator' + ), + 'GoogleCloudStorageBucketCreateAclEntryOperator': ( + 'airflow.providers.google.cloud.operators.gcs.GCSBucketCreateAclEntryOperator' + ), + 'GoogleCloudStorageObjectCreateAclEntryOperator': ( + 'airflow.providers.google.cloud.operators.gcs.GCSObjectCreateAclEntryOperator' + ), }, 'gcs_delete_operator': { 'GCSDeleteObjectsOperator': 'airflow.providers.google.cloud.operators.gcs.GCSDeleteObjectsOperator', + 'GoogleCloudStorageDeleteOperator': ( + 'airflow.providers.google.cloud.operators.gcs.GCSDeleteObjectsOperator' + ), }, 'gcs_download_operator': { - 'GCSToLocalFilesystemOperator': - 'airflow.providers.google.cloud.transfers.gcs_to_local.GCSToLocalFilesystemOperator', + 'GCSToLocalFilesystemOperator': ( + 'airflow.providers.google.cloud.transfers.gcs_to_local.GCSToLocalFilesystemOperator' + ), + 'GoogleCloudStorageDownloadOperator': ( + 'airflow.providers.google.cloud.transfers.gcs_to_local.GCSToLocalFilesystemOperator' + ), }, 'gcs_list_operator': { 'GCSListObjectsOperator': 'airflow.providers.google.cloud.operators.gcs.GCSListObjectsOperator', + 'GoogleCloudStorageListOperator': ( + 'airflow.providers.google.cloud.operators.gcs.GCSListObjectsOperator' + ), }, 'gcs_operator': { 'GCSCreateBucketOperator': 'airflow.providers.google.cloud.operators.gcs.GCSCreateBucketOperator', + 'GoogleCloudStorageCreateBucketOperator': ( + 'airflow.providers.google.cloud.operators.gcs.GCSCreateBucketOperator' + ), }, 'gcs_to_bq': { - 'GCSToBigQueryOperator': - 'airflow.providers.google.cloud.transfers.gcs_to_bigquery.GCSToBigQueryOperator', + 'GCSToBigQueryOperator': ( + 'airflow.providers.google.cloud.transfers.gcs_to_bigquery.GCSToBigQueryOperator' + ), + 'GoogleCloudStorageToBigQueryOperator': ( + 'airflow.providers.google.cloud.transfers.gcs_to_bigquery.GCSToBigQueryOperator' + ), }, 'gcs_to_gcs': { 'GCSToGCSOperator': 'airflow.providers.google.cloud.transfers.gcs_to_gcs.GCSToGCSOperator', + 'GoogleCloudStorageToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.gcs_to_gcs.GCSToGCSOperator' + ), }, 'gcs_to_gdrive_operator': { - 'GCSToGoogleDriveOperator': - 'airflow.providers.google.suite.transfers.gcs_to_gdrive.GCSToGoogleDriveOperator', + 'GCSToGoogleDriveOperator': ( + 'airflow.providers.google.suite.transfers.gcs_to_gdrive.GCSToGoogleDriveOperator' + ), }, 'gcs_to_s3': { 'GCSToS3Operator': 'airflow.providers.amazon.aws.transfers.gcs_to_s3.GCSToS3Operator', + 'GoogleCloudStorageToS3Operator': 'airflow.providers.amazon.aws.transfers.gcs_to_s3.GCSToS3Operator', }, 'grpc_operator': { 'GrpcOperator': 'airflow.providers.grpc.operators.grpc.GrpcOperator', }, 'hive_to_dynamodb': { - 'HiveToDynamoDBOperator': - 'airflow.providers.amazon.aws.transfers.hive_to_dynamodb.HiveToDynamoDBOperator', + 'HiveToDynamoDBOperator': ( + 'airflow.providers.amazon.aws.transfers.hive_to_dynamodb.HiveToDynamoDBOperator' + ), }, 'imap_attachment_to_s3_operator': { - 'ImapAttachmentToS3Operator': - 'airflow.providers.amazon.aws.transfers.imap_attachment_to_s3.ImapAttachmentToS3Operator', + 'ImapAttachmentToS3Operator': ( + 'airflow.providers.amazon.aws.transfers.imap_attachment_to_s3.ImapAttachmentToS3Operator' + ), }, 'jenkins_job_trigger_operator': { - 'JenkinsJobTriggerOperator': - 'airflow.providers.jenkins.operators.jenkins_job_trigger.JenkinsJobTriggerOperator', + 'JenkinsJobTriggerOperator': ( + 'airflow.providers.jenkins.operators.jenkins_job_trigger.JenkinsJobTriggerOperator' + ), }, 'jira_operator': { 'JiraOperator': 'airflow.providers.atlassian.jira.operators.jira.JiraOperator', }, 'kubernetes_pod_operator': { - 'KubernetesPodOperator': - 'airflow.providers.cncf.kubernetes.operators.kubernetes_pod.KubernetesPodOperator', + 'KubernetesPodOperator': ( + 'airflow.providers.cncf.kubernetes.operators.kubernetes_pod.KubernetesPodOperator' + ), }, 'mlengine_operator': { - 'MLEngineManageModelOperator': - 'airflow.providers.google.cloud.operators.mlengine.MLEngineManageModelOperator', - 'MLEngineManageVersionOperator': - 'airflow.providers.google.cloud.operators.mlengine.MLEngineManageVersionOperator', - 'MLEngineStartBatchPredictionJobOperator': - 'airflow.providers.google.cloud.operators.mlengine.MLEngineStartBatchPredictionJobOperator', - 'MLEngineStartTrainingJobOperator': - 'airflow.providers.google.cloud.operators.mlengine.MLEngineStartTrainingJobOperator', + 'MLEngineManageModelOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineManageModelOperator' + ), + 'MLEngineManageVersionOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineManageVersionOperator' + ), + 'MLEngineStartBatchPredictionJobOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineStartBatchPredictionJobOperator' + ), + 'MLEngineStartTrainingJobOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineStartTrainingJobOperator' + ), + 'MLEngineBatchPredictionOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineStartBatchPredictionJobOperator' + ), + 'MLEngineModelOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineManageModelOperator' + ), + 'MLEngineTrainingOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineStartTrainingJobOperator' + ), + 'MLEngineVersionOperator': ( + 'airflow.providers.google.cloud.operators.mlengine.MLEngineManageVersionOperator' + ), }, 'mongo_to_s3': { 'MongoToS3Operator': 'airflow.providers.amazon.aws.transfers.mongo_to_s3.MongoToS3Operator', }, 'mssql_to_gcs': { 'MSSQLToGCSOperator': 'airflow.providers.google.cloud.transfers.mssql_to_gcs.MSSQLToGCSOperator', + 'MsSqlToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.mssql_to_gcs.MSSQLToGCSOperator' + ), }, 'mysql_to_gcs': { 'MySQLToGCSOperator': 'airflow.providers.google.cloud.transfers.mysql_to_gcs.MySQLToGCSOperator', + 'MySqlToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.mysql_to_gcs.MySQLToGCSOperator' + ), }, 'opsgenie_alert_operator': { - 'OpsgenieCreateAlertOperator': - 'airflow.providers.opsgenie.operators.opsgenie.OpsgenieCreateAlertOperator', + 'OpsgenieCreateAlertOperator': ( + 'airflow.providers.opsgenie.operators.opsgenie.OpsgenieCreateAlertOperator' + ), + 'OpsgenieAlertOperator': 'airflow.providers.opsgenie.operators.opsgenie.OpsgenieCreateAlertOperator', }, 'oracle_to_azure_data_lake_transfer': { 'OracleToAzureDataLakeOperator': - 'airflow.providers.microsoft.azure.transfers.oracle_to_azure_data_lake.' - 'OracleToAzureDataLakeOperator', + 'airflow.providers.microsoft.azure.transfers.' + 'oracle_to_azure_data_lake.OracleToAzureDataLakeOperator', }, 'oracle_to_oracle_transfer': { - 'OracleToOracleOperator': - 'airflow.providers.oracle.transfers.oracle_to_oracle.OracleToOracleOperator', + 'OracleToOracleOperator': ( + 'airflow.providers.oracle.transfers.oracle_to_oracle.OracleToOracleOperator' + ), + 'OracleToOracleTransfer': ( + 'airflow.providers.oracle.transfers.oracle_to_oracle.OracleToOracleOperator' + ), }, 'postgres_to_gcs_operator': { - 'PostgresToGCSOperator': - 'airflow.providers.google.cloud.transfers.postgres_to_gcs.PostgresToGCSOperator', + 'PostgresToGCSOperator': ( + 'airflow.providers.google.cloud.transfers.postgres_to_gcs.PostgresToGCSOperator' + ), + 'PostgresToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.postgres_to_gcs.PostgresToGCSOperator' + ), }, 'pubsub_operator': { - 'PubSubCreateSubscriptionOperator': - 'airflow.providers.google.cloud.operators.pubsub.PubSubCreateSubscriptionOperator', - 'PubSubCreateTopicOperator': - 'airflow.providers.google.cloud.operators.pubsub.PubSubCreateTopicOperator', - 'PubSubDeleteSubscriptionOperator': - 'airflow.providers.google.cloud.operators.pubsub.PubSubDeleteSubscriptionOperator', - 'PubSubDeleteTopicOperator': - 'airflow.providers.google.cloud.operators.pubsub.PubSubDeleteTopicOperator', - 'PubSubPublishMessageOperator': - 'airflow.providers.google.cloud.operators.pubsub.PubSubPublishMessageOperator', + 'PubSubCreateSubscriptionOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubCreateSubscriptionOperator' + ), + 'PubSubCreateTopicOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubCreateTopicOperator' + ), + 'PubSubDeleteSubscriptionOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubDeleteSubscriptionOperator' + ), + 'PubSubDeleteTopicOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubDeleteTopicOperator' + ), + 'PubSubPublishMessageOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubPublishMessageOperator' + ), + 'PubSubPublishOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubPublishMessageOperator' + ), + 'PubSubSubscriptionCreateOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubCreateSubscriptionOperator' + ), + 'PubSubSubscriptionDeleteOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubDeleteSubscriptionOperator' + ), + 'PubSubTopicCreateOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubCreateTopicOperator' + ), + 'PubSubTopicDeleteOperator': ( + 'airflow.providers.google.cloud.operators.pubsub.PubSubDeleteTopicOperator' + ), }, 'qubole_check_operator': { 'QuboleCheckOperator': 'airflow.providers.qubole.operators.qubole_check.QuboleCheckOperator', - 'QuboleValueCheckOperator': - 'airflow.providers.qubole.operators.qubole_check.QuboleValueCheckOperator', + 'QuboleValueCheckOperator': ( + 'airflow.providers.qubole.operators.qubole_check.QuboleValueCheckOperator' + ), }, 'qubole_operator': { 'QuboleOperator': 'airflow.providers.qubole.operators.qubole.QuboleOperator', @@ -587,8 +1071,9 @@ 'S3ToSFTPOperator': 'airflow.providers.amazon.aws.transfers.s3_to_sftp.S3ToSFTPOperator', }, 'segment_track_event_operator': { - 'SegmentTrackEventOperator': - 'airflow.providers.segment.operators.segment_track_event.SegmentTrackEventOperator', + 'SegmentTrackEventOperator': ( + 'airflow.providers.segment.operators.segment_track_event.SegmentTrackEventOperator' + ), }, 'sftp_operator': { 'SFTPOperator': 'airflow.providers.sftp.operators.sftp.SFTPOperator', @@ -617,6 +1102,9 @@ }, 'sql_to_gcs': { 'BaseSQLToGCSOperator': 'airflow.providers.google.cloud.transfers.sql_to_gcs.BaseSQLToGCSOperator', + 'BaseSQLToGoogleCloudStorageOperator': ( + 'airflow.providers.google.cloud.transfers.sql_to_gcs.BaseSQLToGCSOperator' + ), }, 'sqoop_operator': { 'SqoopOperator': 'airflow.providers.apache.sqoop.operators.sqoop.SqoopOperator', @@ -628,15 +1116,21 @@ 'VerticaOperator': 'airflow.providers.vertica.operators.vertica.VerticaOperator', }, 'vertica_to_hive': { - 'VerticaToHiveOperator': - 'airflow.providers.apache.hive.transfers.vertica_to_hive.VerticaToHiveOperator', + 'VerticaToHiveOperator': ( + 'airflow.providers.apache.hive.transfers.vertica_to_hive.VerticaToHiveOperator' + ), + 'VerticaToHiveTransfer': ( + 'airflow.providers.apache.hive.transfers.vertica_to_hive.VerticaToHiveOperator' + ), }, 'vertica_to_mysql': { 'VerticaToMySqlOperator': 'airflow.providers.mysql.transfers.vertica_to_mysql.VerticaToMySqlOperator', + 'VerticaToMySqlTransfer': 'airflow.providers.mysql.transfers.vertica_to_mysql.VerticaToMySqlOperator', }, 'wasb_delete_blob_operator': { - 'WasbDeleteBlobOperator': - 'airflow.providers.microsoft.azure.operators.wasb_delete_blob.WasbDeleteBlobOperator', + 'WasbDeleteBlobOperator': ( + 'airflow.providers.microsoft.azure.operators.wasb_delete_blob.WasbDeleteBlobOperator' + ), }, 'winrm_operator': { 'WinRMOperator': 'airflow.providers.microsoft.winrm.operators.winrm.WinRMOperator', diff --git a/airflow/contrib/secrets/__init__.py b/airflow/contrib/secrets/__init__.py index f0b87b5b84c68..c9134627b1d3a 100644 --- a/airflow/contrib/secrets/__init__.py +++ b/airflow/contrib/secrets/__init__.py @@ -29,19 +29,23 @@ 'SecretsManagerBackend': 'airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend', }, 'aws_systems_manager': { - 'SystemsManagerParameterStoreBackend': - 'airflow.providers.amazon.aws.secrets.systems_manager.SystemsManagerParameterStoreBackend', + 'SystemsManagerParameterStoreBackend': ( + 'airflow.providers.amazon.aws.secrets.systems_manager.SystemsManagerParameterStoreBackend' + ), }, 'azure_key_vault': { 'AzureKeyVaultBackend': 'airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend', }, 'gcp_secrets_manager': { - 'CloudSecretManagerBackend': - 'airflow.providers.google.cloud.secrets.secret_manager.CloudSecretManagerBackend', + 'CloudSecretManagerBackend': ( + 'airflow.providers.google.cloud.secrets.secret_manager.CloudSecretManagerBackend' + ), + 'CloudSecretsManagerBackend': ( + 'airflow.providers.google.cloud.secrets.secret_manager.CloudSecretManagerBackend' + ), }, 'hashicorp_vault': { 'VaultBackend': 'airflow.providers.hashicorp.secrets.vault.VaultBackend', }, } - add_deprecated_classes(__deprecated_classes, __name__) diff --git a/airflow/contrib/sensors/__init__.py b/airflow/contrib/sensors/__init__.py index 23ebd67aaaf9e..78afebe42fb7e 100644 --- a/airflow/contrib/sensors/__init__.py +++ b/airflow/contrib/sensors/__init__.py @@ -32,19 +32,23 @@ 'AthenaSensor': 'airflow.providers.amazon.aws.sensors.athena.AthenaSensor', }, 'aws_glue_catalog_partition_sensor': { - 'AwsGlueCatalogPartitionSensor': - 'airflow.providers.amazon.aws.sensors.glue_catalog_partition.GlueCatalogPartitionSensor', + 'AwsGlueCatalogPartitionSensor': ( + 'airflow.providers.amazon.aws.sensors.glue_catalog_partition.GlueCatalogPartitionSensor' + ), }, 'aws_redshift_cluster_sensor': { - 'AwsRedshiftClusterSensor': - 'airflow.providers.amazon.aws.sensors.redshift_cluster.RedshiftClusterSensor', + 'AwsRedshiftClusterSensor': ( + 'airflow.providers.amazon.aws.sensors.redshift_cluster.RedshiftClusterSensor' + ), }, 'aws_sqs_sensor': { 'SqsSensor': 'airflow.providers.amazon.aws.sensors.sqs.SqsSensor', + 'SQSSensor': 'airflow.providers.amazon.aws.sensors.sqs.SqsSensor', }, 'azure_cosmos_sensor': { - 'AzureCosmosDocumentSensor': - 'airflow.providers.microsoft.azure.sensors.cosmos.AzureCosmosDocumentSensor', + 'AzureCosmosDocumentSensor': ( + 'airflow.providers.microsoft.azure.sensors.cosmos.AzureCosmosDocumentSensor' + ), }, 'bash_sensor': { 'STDOUT': 'airflow.sensors.bash.STDOUT', @@ -54,8 +58,10 @@ 'gettempdir': 'airflow.sensors.bash.gettempdir', }, 'bigquery_sensor': { - 'BigQueryTableExistenceSensor': - 'airflow.providers.google.cloud.sensors.bigquery.BigQueryTableExistenceSensor', + 'BigQueryTableExistenceSensor': ( + 'airflow.providers.google.cloud.sensors.bigquery.BigQueryTableExistenceSensor' + ), + 'BigQueryTableSensor': 'airflow.providers.google.cloud.sensors.bigquery.BigQueryTableExistenceSensor', }, 'cassandra_record_sensor': { 'CassandraRecordSensor': 'airflow.providers.apache.cassandra.sensors.record.CassandraRecordSensor', @@ -80,18 +86,37 @@ 'CloudDataTransferServiceJobStatusSensor': 'airflow.providers.google.cloud.sensors.cloud_storage_transfer_service.' 'CloudDataTransferServiceJobStatusSensor', + 'GCPTransferServiceWaitForJobStatusSensor': + 'airflow.providers.google.cloud.sensors.cloud_storage_transfer_service.' + 'CloudDataTransferServiceJobStatusSensor', }, 'gcs_sensor': { 'GCSObjectExistenceSensor': 'airflow.providers.google.cloud.sensors.gcs.GCSObjectExistenceSensor', - 'GCSObjectsWithPrefixExistenceSensor': - 'airflow.providers.google.cloud.sensors.gcs.GCSObjectsWithPrefixExistenceSensor', + 'GCSObjectsWithPrefixExistenceSensor': ( + 'airflow.providers.google.cloud.sensors.gcs.GCSObjectsWithPrefixExistenceSensor' + ), 'GCSObjectUpdateSensor': 'airflow.providers.google.cloud.sensors.gcs.GCSObjectUpdateSensor', - 'GCSUploadSessionCompleteSensor': - 'airflow.providers.google.cloud.sensors.gcs.GCSUploadSessionCompleteSensor', + 'GCSUploadSessionCompleteSensor': ( + 'airflow.providers.google.cloud.sensors.gcs.GCSUploadSessionCompleteSensor' + ), + 'GoogleCloudStorageObjectSensor': ( + 'airflow.providers.google.cloud.sensors.gcs.GCSObjectExistenceSensor' + ), + 'GoogleCloudStorageObjectUpdatedSensor': ( + 'airflow.providers.google.cloud.sensors.gcs.GCSObjectUpdateSensor' + ), + 'GoogleCloudStoragePrefixSensor': ( + 'airflow.providers.google.cloud.sensors.gcs.GCSObjectsWithPrefixExistenceSensor' + ), + 'GoogleCloudStorageUploadSessionCompleteSensor': ( + 'airflow.providers.google.cloud.sensors.gcs.GCSUploadSessionCompleteSensor' + ), }, 'hdfs_sensor': { 'HdfsFolderSensor': 'airflow.providers.apache.hdfs.sensors.hdfs.HdfsFolderSensor', 'HdfsRegexSensor': 'airflow.providers.apache.hdfs.sensors.hdfs.HdfsRegexSensor', + 'HdfsSensorFolder': 'airflow.providers.apache.hdfs.sensors.hdfs.HdfsFolderSensor', + 'HdfsSensorRegex': 'airflow.providers.apache.hdfs.sensors.hdfs.HdfsRegexSensor', }, 'imap_attachment_sensor': { 'ImapAttachmentSensor': 'airflow.providers.imap.sensors.imap_attachment.ImapAttachmentSensor', diff --git a/airflow/contrib/utils/__init__.py b/airflow/contrib/utils/__init__.py index c9116403e9938..44f24ba453a85 100644 --- a/airflow/contrib/utils/__init__.py +++ b/airflow/contrib/utils/__init__.py @@ -24,281 +24,35 @@ warnings.warn("This module is deprecated. Please use `airflow.utils`.", DeprecationWarning, stacklevel=2) __deprecated_classes = { - 'aws_athena_hook': { - 'AWSAthenaHook': 'airflow.providers.amazon.aws.hooks.athena.AthenaHook', - }, - 'aws_datasync_hook': { - 'AWSDataSyncHook': 'airflow.providers.amazon.aws.hooks.datasync.DataSyncHook', - }, - 'aws_dynamodb_hook': { - 'AwsDynamoDBHook': 'airflow.providers.amazon.aws.hooks.dynamodb.DynamoDBHook', - }, - 'aws_firehose_hook': { - 'FirehoseHook': 'airflow.providers.amazon.aws.hooks.kinesis.FirehoseHook', - }, - 'aws_glue_catalog_hook': { - 'AwsGlueCatalogHook': 'airflow.providers.amazon.aws.hooks.glue_catalog.GlueCatalogHook', - }, - 'aws_hook': { - 'AwsBaseHook': 'airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook', - '_parse_s3_config': 'airflow.providers.amazon.aws.hooks.base_aws._parse_s3_config', - 'boto3': 'airflow.providers.amazon.aws.hooks.base_aws.boto3', - }, - 'aws_lambda_hook': { - 'AwsLambdaHook': 'airflow.providers.amazon.aws.hooks.lambda_function.LambdaHook', - }, - 'aws_logs_hook': { - 'AwsLogsHook': 'airflow.providers.amazon.aws.hooks.logs.AwsLogsHook', - }, - 'aws_sns_hook': { - 'AwsSnsHook': 'airflow.providers.amazon.aws.hooks.sns.SnsHook', - }, - 'aws_sqs_hook': { - 'SqsHook': 'airflow.providers.amazon.aws.hooks.sqs.SqsHook', - }, - 'azure_container_instance_hook': { - 'AzureContainerInstanceHook': - 'airflow.providers.microsoft.azure.hooks.container_instance.AzureContainerInstanceHook', - }, - 'azure_container_registry_hook': { - 'AzureContainerRegistryHook': - 'airflow.providers.microsoft.azure.hooks.container_registry.AzureContainerRegistryHook', - }, - 'azure_container_volume_hook': { - 'AzureContainerVolumeHook': - 'airflow.providers.microsoft.azure.hooks.container_volume.AzureContainerVolumeHook', - }, - 'azure_cosmos_hook': { - 'AzureCosmosDBHook': 'airflow.providers.microsoft.azure.hooks.cosmos.AzureCosmosDBHook', - }, - 'azure_data_lake_hook': { - 'AzureDataLakeHook': 'airflow.providers.microsoft.azure.hooks.data_lake.AzureDataLakeHook', - }, - 'azure_fileshare_hook': { - 'AzureFileShareHook': 'airflow.providers.microsoft.azure.hooks.fileshare.AzureFileShareHook', - }, - 'bigquery_hook': { - 'BigQueryBaseCursor': 'airflow.providers.google.cloud.hooks.bigquery.BigQueryBaseCursor', - 'BigQueryConnection': 'airflow.providers.google.cloud.hooks.bigquery.BigQueryConnection', - 'BigQueryCursor': 'airflow.providers.google.cloud.hooks.bigquery.BigQueryCursor', - 'BigQueryHook': 'airflow.providers.google.cloud.hooks.bigquery.BigQueryHook', - 'GbqConnector': 'airflow.providers.google.cloud.hooks.bigquery.GbqConnector', - }, - 'cassandra_hook': { - 'CassandraHook': 'airflow.providers.apache.cassandra.hooks.cassandra.CassandraHook', - }, - 'cloudant_hook': { - 'CloudantHook': 'airflow.providers.cloudant.hooks.cloudant.CloudantHook', - }, - 'databricks_hook': { - 'CANCEL_RUN_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.CANCEL_RUN_ENDPOINT', - 'GET_RUN_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.GET_RUN_ENDPOINT', - 'RESTART_CLUSTER_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.RESTART_CLUSTER_ENDPOINT', - 'RUN_LIFE_CYCLE_STATES': 'airflow.providers.databricks.hooks.databricks.RUN_LIFE_CYCLE_STATES', - 'RUN_NOW_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.RUN_NOW_ENDPOINT', - 'START_CLUSTER_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.START_CLUSTER_ENDPOINT', - 'SUBMIT_RUN_ENDPOINT': 'airflow.providers.databricks.hooks.databricks.SUBMIT_RUN_ENDPOINT', - 'TERMINATE_CLUSTER_ENDPOINT': - 'airflow.providers.databricks.hooks.databricks.TERMINATE_CLUSTER_ENDPOINT', - 'DatabricksHook': 'airflow.providers.databricks.hooks.databricks.DatabricksHook', - 'RunState': 'airflow.providers.databricks.hooks.databricks.RunState', - }, - 'datadog_hook': { - 'DatadogHook': 'airflow.providers.datadog.hooks.datadog.DatadogHook', - }, - 'datastore_hook': { - 'DatastoreHook': 'airflow.providers.google.cloud.hooks.datastore.DatastoreHook', - }, - 'dingding_hook': { - 'DingdingHook': 'airflow.providers.dingding.hooks.dingding.DingdingHook', - 'requests': 'airflow.providers.dingding.hooks.dingding.requests', - }, - 'discord_webhook_hook': { - 'DiscordWebhookHook': 'airflow.providers.discord.hooks.discord_webhook.DiscordWebhookHook', - }, - 'emr_hook': { - 'EmrHook': 'airflow.providers.amazon.aws.hooks.emr.EmrHook', - }, - 'fs_hook': { - 'FSHook': 'airflow.hooks.filesystem.FSHook', - }, - 'ftp_hook': { - 'FTPHook': 'airflow.providers.ftp.hooks.ftp.FTPHook', - 'FTPSHook': 'airflow.providers.ftp.hooks.ftp.FTPSHook', - }, - 'gcp_api_base_hook': { - 'GoogleBaseHook': 'airflow.providers.google.common.hooks.base_google.GoogleBaseHook', - }, - 'gcp_bigtable_hook': { - 'BigtableHook': 'airflow.providers.google.cloud.hooks.bigtable.BigtableHook', - }, - 'gcp_cloud_build_hook': { - 'CloudBuildHook': 'airflow.providers.google.cloud.hooks.cloud_build.CloudBuildHook', - }, - 'gcp_compute_hook': { - 'ComputeEngineHook': 'airflow.providers.google.cloud.hooks.compute.ComputeEngineHook', - }, - 'gcp_container_hook': { - 'GKEHook': 'airflow.providers.google.cloud.hooks.kubernetes_engine.GKEHook', - }, - 'gcp_dataflow_hook': { - 'DataflowHook': 'airflow.providers.google.cloud.hooks.dataflow.DataflowHook', - }, - 'gcp_dataproc_hook': { - 'DataprocHook': 'airflow.providers.google.cloud.hooks.dataproc.DataprocHook', - }, - 'gcp_dlp_hook': { - 'CloudDLPHook': 'airflow.providers.google.cloud.hooks.dlp.CloudDLPHook', - 'DlpJob': 'airflow.providers.google.cloud.hooks.dlp.DlpJob', - }, - 'gcp_function_hook': { - 'CloudFunctionsHook': 'airflow.providers.google.cloud.hooks.functions.CloudFunctionsHook', - }, - 'gcp_kms_hook': { - 'CloudKMSHook': 'airflow.providers.google.cloud.hooks.kms.CloudKMSHook', - }, - 'gcp_mlengine_hook': { - 'MLEngineHook': 'airflow.providers.google.cloud.hooks.mlengine.MLEngineHook', - }, - 'gcp_natural_language_hook': { - 'CloudNaturalLanguageHook': - 'airflow.providers.google.cloud.hooks.natural_language.CloudNaturalLanguageHook', - }, - 'gcp_pubsub_hook': { - 'PubSubException': 'airflow.providers.google.cloud.hooks.pubsub.PubSubException', - 'PubSubHook': 'airflow.providers.google.cloud.hooks.pubsub.PubSubHook', - }, - 'gcp_spanner_hook': { - 'SpannerHook': 'airflow.providers.google.cloud.hooks.spanner.SpannerHook', - }, - 'gcp_speech_to_text_hook': { - 'CloudSpeechToTextHook': 'airflow.providers.google.cloud.hooks.speech_to_text.CloudSpeechToTextHook', - }, - 'gcp_sql_hook': { - 'CloudSQLDatabaseHook': 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLDatabaseHook', - 'CloudSQLHook': 'airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLHook', - }, - 'gcp_tasks_hook': { - 'CloudTasksHook': 'airflow.providers.google.cloud.hooks.tasks.CloudTasksHook', - }, - 'gcp_text_to_speech_hook': { - 'CloudTextToSpeechHook': 'airflow.providers.google.cloud.hooks.text_to_speech.CloudTextToSpeechHook', - }, - 'gcp_transfer_hook': { - 'CloudDataTransferServiceHook': - 'airflow.providers.google.cloud.hooks.cloud_storage_transfer_service.' - 'CloudDataTransferServiceHook', - }, - 'gcp_translate_hook': { - 'CloudTranslateHook': 'airflow.providers.google.cloud.hooks.translate.CloudTranslateHook', - }, - 'gcp_video_intelligence_hook': { - 'CloudVideoIntelligenceHook': - 'airflow.providers.google.cloud.hooks.video_intelligence.CloudVideoIntelligenceHook', - }, - 'gcp_vision_hook': { - 'CloudVisionHook': 'airflow.providers.google.cloud.hooks.vision.CloudVisionHook', - }, - 'gcs_hook': { - 'GCSHook': 'airflow.providers.google.cloud.hooks.gcs.GCSHook', - }, - 'gdrive_hook': { - 'GoogleDriveHook': 'airflow.providers.google.suite.hooks.drive.GoogleDriveHook', - }, - 'grpc_hook': { - 'GrpcHook': 'airflow.providers.grpc.hooks.grpc.GrpcHook', - }, - 'imap_hook': { - 'ImapHook': 'airflow.providers.imap.hooks.imap.ImapHook', - 'Mail': 'airflow.providers.imap.hooks.imap.Mail', - 'MailPart': 'airflow.providers.imap.hooks.imap.MailPart', - }, - 'jenkins_hook': { - 'JenkinsHook': 'airflow.providers.jenkins.hooks.jenkins.JenkinsHook', - }, - 'jira_hook': { - 'JiraHook': 'airflow.providers.atlassian.jira.hooks.jira.JiraHook', - }, - 'mongo_hook': { - 'MongoHook': 'airflow.providers.mongo.hooks.mongo.MongoHook', - }, - 'openfaas_hook': { - 'OK_STATUS_CODE': 'airflow.providers.openfaas.hooks.openfaas.OK_STATUS_CODE', - 'OpenFaasHook': 'airflow.providers.openfaas.hooks.openfaas.OpenFaasHook', - 'requests': 'airflow.providers.openfaas.hooks.openfaas.requests', - }, - 'opsgenie_alert_hook': { - 'OpsgenieAlertHook': 'airflow.providers.opsgenie.hooks.opsgenie.OpsgenieAlertHook', - }, - 'pagerduty_hook': { - 'PagerdutyHook': 'airflow.providers.pagerduty.hooks.pagerduty.PagerdutyHook', - }, - 'pinot_hook': { - 'PinotAdminHook': 'airflow.providers.apache.pinot.hooks.pinot.PinotAdminHook', - 'PinotDbApiHook': 'airflow.providers.apache.pinot.hooks.pinot.PinotDbApiHook', - }, - 'qubole_check_hook': { - 'QuboleCheckHook': 'airflow.providers.qubole.hooks.qubole_check.QuboleCheckHook', - }, - 'qubole_hook': { - 'QuboleHook': 'airflow.providers.qubole.hooks.qubole.QuboleHook', - }, - 'redis_hook': { - 'RedisHook': 'airflow.providers.redis.hooks.redis.RedisHook', - }, - 'redshift_hook': { - 'RedshiftHook': 'airflow.providers.amazon.aws.hooks.redshift_cluster.RedshiftHook', - }, - 'sagemaker_hook': { - 'LogState': 'airflow.providers.amazon.aws.hooks.sagemaker.LogState', - 'Position': 'airflow.providers.amazon.aws.hooks.sagemaker.Position', - 'SageMakerHook': 'airflow.providers.amazon.aws.hooks.sagemaker.SageMakerHook', - 'argmin': 'airflow.providers.amazon.aws.hooks.sagemaker.argmin', - 'secondary_training_status_changed': - 'airflow.providers.amazon.aws.hooks.sagemaker.secondary_training_status_changed', - 'secondary_training_status_message': - 'airflow.providers.amazon.aws.hooks.sagemaker.secondary_training_status_message', - }, - 'salesforce_hook': { - 'SalesforceHook': 'airflow.providers.salesforce.hooks.salesforce.SalesforceHook', - 'pd': 'airflow.providers.salesforce.hooks.salesforce.pd', - }, - 'segment_hook': { - 'SegmentHook': 'airflow.providers.segment.hooks.segment.SegmentHook', - 'analytics': 'airflow.providers.segment.hooks.segment.analytics', - }, - 'sftp_hook': { - 'SFTPHook': 'airflow.providers.sftp.hooks.sftp.SFTPHook', - }, - 'slack_webhook_hook': { - 'SlackWebhookHook': 'airflow.providers.slack.hooks.slack_webhook.SlackWebhookHook', - }, - 'snowflake_hook': { - 'SnowflakeHook': 'airflow.providers.snowflake.hooks.snowflake.SnowflakeHook', - }, - 'spark_jdbc_hook': { - 'SparkJDBCHook': 'airflow.providers.apache.spark.hooks.spark_jdbc.SparkJDBCHook', - }, - 'spark_sql_hook': { - 'SparkSqlHook': 'airflow.providers.apache.spark.hooks.spark_sql.SparkSqlHook', - }, - 'spark_submit_hook': { - 'SparkSubmitHook': 'airflow.providers.apache.spark.hooks.spark_submit.SparkSubmitHook', - }, - 'sqoop_hook': { - 'SqoopHook': 'airflow.providers.apache.sqoop.hooks.sqoop.SqoopHook', - }, - 'ssh_hook': { - 'SSHHook': 'airflow.providers.ssh.hooks.ssh.SSHHook', - }, - 'vertica_hook': { - 'VerticaHook': 'airflow.providers.vertica.hooks.vertica.VerticaHook', - }, - 'wasb_hook': { - 'WasbHook': 'airflow.providers.microsoft.azure.hooks.wasb.WasbHook', - }, - 'winrm_hook': { - 'WinRMHook': 'airflow.providers.microsoft.winrm.hooks.winrm.WinRMHook', + 'gcp_field_sanitizer': { + 'GcpBodyFieldSanitizer': 'airflow.providers.google.cloud.utils.field_sanitizer.GcpBodyFieldSanitizer', + 'GcpFieldSanitizerException': ( + 'airflow.providers.google.cloud.utils.field_sanitizer.GcpFieldSanitizerException' + ), + }, + 'gcp_field_validator': { + 'GcpBodyFieldValidator': 'airflow.providers.google.cloud.utils.field_validator.GcpBodyFieldValidator', + 'GcpFieldValidationException': ( + 'airflow.providers.google.cloud.utils.field_validator.GcpFieldValidationException' + ), + 'GcpValidationSpecificationException': ( + 'airflow.providers.google.cloud.utils.field_validator.GcpValidationSpecificationException' + ), + }, + 'mlengine_operator_utils': { + 'create_evaluate_ops': ( + 'airflow.providers.google.cloud.utils.mlengine_operator_utils.create_evaluate_ops' + ), + }, + 'mlengine_prediction_summary': { + 'JsonCoder': 'airflow.providers.google.cloud.utils.mlengine_prediction_summary.JsonCoder', + 'MakeSummary': 'airflow.providers.google.cloud.utils.mlengine_prediction_summary.MakeSummary', + }, + 'sendgrid': { + 'import_string': 'airflow.utils.module_loading.import_string', + }, + 'weekday': { + 'WeekDay': 'airflow.utils.weekday.WeekDay', }, } diff --git a/airflow/contrib/utils/log/__init__.py b/airflow/contrib/utils/log/__init__.py index 174ce4b29890d..e5e4e7abfda84 100644 --- a/airflow/contrib/utils/log/__init__.py +++ b/airflow/contrib/utils/log/__init__.py @@ -24,8 +24,9 @@ __deprecated_classes = { 'task_handler_with_custom_formatter': { - 'TaskHandlerWithCustomFormatter': - 'airflow.utils.log.task_handler_with_custom_formatter.TaskHandlerWithCustomFormatter', + 'TaskHandlerWithCustomFormatter': ( + 'airflow.utils.log.task_handler_with_custom_formatter.TaskHandlerWithCustomFormatter' + ), }, } diff --git a/dev/contrib/move_contrib.py b/dev/contrib/move_contrib.py deleted file mode 100644 index 5ead506a93739..0000000000000 --- a/dev/contrib/move_contrib.py +++ /dev/null @@ -1,84 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -import ast -import os -from collections import defaultdict -from pathlib import Path -from typing import Dict, List, NamedTuple - -from jinja2 import BaseLoader, Environment -from rich.console import Console - -if __name__ not in ("__main__", "__mp_main__"): - raise SystemExit( - "This file is intended to be executed as an executable program. You cannot use it as a module." - f"To run this script, run the ./{__file__} command [FILE] ..." - ) - -AIRFLOW_SOURCES_ROOT = Path(__file__).parents[2].resolve() -CONTRIB_DIR = AIRFLOW_SOURCES_ROOT / "airflow" / "contrib" - - -class Import(NamedTuple): - module: str - name: str - alias: str - - -def get_imports(path: Path): - root = ast.parse(path.read_text()) - for node in ast.iter_child_nodes(root): - if isinstance(node, ast.Import): - module: List[str] = [] - elif isinstance(node, ast.ImportFrom) and node.module: - module = node.module.split('.') - else: - continue - for n in node.names: # type: ignore[attr-defined] - yield Import(".".join(module), n.name, n.asname if n.asname else n.name) - - -DEPRECATED_CLASSES_TEMPLATE = """ -__deprecated_classes = { -{%- for module, package_imports in package_imports.items() %} - '{{module}}': { -{%- for import_item in package_imports %} - '{{import_item.alias}}': '{{import_item.module}}.{{import_item.name}}', -{%- endfor %} - }, -{%- endfor %} -} -""" - - -if __name__ == '__main__': - console = Console(color_system="standard", width=300) - all_deprecated_imports: Dict[str, Dict[str, List[Import]]] = defaultdict(lambda: defaultdict(list)) - for contrib_file_path in CONTRIB_DIR.rglob("*.py"): - if contrib_file_path.name == '__init__.py': - continue - original_module = os.fspath(contrib_file_path.parent.relative_to(CONTRIB_DIR)).replace(os.sep, ".") - for _import in get_imports(contrib_file_path): - module_name = contrib_file_path.name[: -len(".py")] - if _import.name not in ['warnings']: - all_deprecated_imports[original_module][module_name].append(_import) - - for module, package_imports in all_deprecated_imports.items(): - console.print(f"[yellow]Import dictionary for {module}:\n") - template = Environment(loader=BaseLoader()).from_string(DEPRECATED_CLASSES_TEMPLATE) - console.print(template.render(package_imports=dict(sorted(package_imports.items())))) diff --git a/dev/deprecations/generate_deprecated_dicts.py b/dev/deprecations/generate_deprecated_dicts.py new file mode 100644 index 0000000000000..7ccbfac63c993 --- /dev/null +++ b/dev/deprecations/generate_deprecated_dicts.py @@ -0,0 +1,216 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +import ast +import os +from collections import defaultdict +from functools import lru_cache +from pathlib import Path +from typing import Dict, List, NamedTuple + +from jinja2 import BaseLoader, Environment +from rich.console import Console + +if __name__ not in ("__main__", "__mp_main__"): + raise SystemExit( + "This file is intended to be executed as an executable program. You cannot use it as a module_path." + f"To run this script, run the ./{__file__} command [FILE] ..." + ) + +AIRFLOW_SOURCES_ROOT = Path(__file__).parents[2].resolve() +CONTRIB_DIR = AIRFLOW_SOURCES_ROOT / "airflow" / "contrib" + + +@lru_cache(maxsize=None) +def black_mode(): + from black import Mode, parse_pyproject_toml, target_version_option_callback + + config = parse_pyproject_toml(os.path.join(AIRFLOW_SOURCES_ROOT, "pyproject.toml")) + + target_versions = set( + target_version_option_callback(None, None, tuple(config.get('target_version', ()))), + ) + + return Mode( + target_versions=target_versions, + line_length=config.get('line_length', Mode.line_length), + is_pyi=bool(config.get('is_pyi', Mode.is_pyi)), + string_normalization=not bool(config.get('skip_string_normalization', not Mode.string_normalization)), + experimental_string_processing=bool( + config.get('experimental_string_processing', Mode.experimental_string_processing) + ), + ) + + +def black_format(content) -> str: + from black import format_str + + return format_str(content, mode=black_mode()) + + +class Import(NamedTuple): + module_path: str + name: str + alias: str + + +class ImportedClass(NamedTuple): + module_path: str + name: str + + +def get_imports(path: Path): + root = ast.parse(path.read_text()) + imports: Dict[str, ImportedClass] = {} + for node in ast.iter_child_nodes(root): + if isinstance(node, ast.Import): + module_array: List[str] = [] + elif isinstance(node, ast.ImportFrom) and node.module: + module_array = node.module.split('.') + elif isinstance(node, ast.ClassDef): + for base in node.bases: + res = imports.get(base.id) # type: ignore[attr-defined] + if res: + yield Import(module_path=res.module_path, name=res.name, alias=node.name) + continue + else: + continue + for n in node.names: # type: ignore[attr-defined] + imported_as = n.asname if n.asname else n.name + module_path = ".".join(module_array) + imports[imported_as] = ImportedClass(module_path=module_path, name=n.name) + yield Import(module_path, n.name, imported_as) + + +DEPRECATED_CLASSES_TEMPLATE = """ +__deprecated_classes = { +{%- for module_path, package_imports in package_imports.items() %} + '{{module_path}}': { +{%- for import_item in package_imports %} + '{{import_item.alias}}': '{{import_item.module_path}}.{{import_item.name}}', +{%- endfor %} + }, +{%- endfor %} +} +""" + +DEPRECATED_MODULES = [ + 'airflow/hooks/base_hook.py', + 'airflow/hooks/dbapi_hook.py', + 'airflow/hooks/docker_hook.py', + 'airflow/hooks/druid_hook.py', + 'airflow/hooks/hdfs_hook.py', + 'airflow/hooks/hive_hooks.py', + 'airflow/hooks/http_hook.py', + 'airflow/hooks/jdbc_hook.py', + 'airflow/hooks/mssql_hook.py', + 'airflow/hooks/mysql_hook.py', + 'airflow/hooks/oracle_hook.py', + 'airflow/hooks/pig_hook.py', + 'airflow/hooks/postgres_hook.py', + 'airflow/hooks/presto_hook.py', + 'airflow/hooks/S3_hook.py', + 'airflow/hooks/samba_hook.py', + 'airflow/hooks/slack_hook.py', + 'airflow/hooks/sqlite_hook.py', + 'airflow/hooks/webhdfs_hook.py', + 'airflow/hooks/zendesk_hook.py', + 'airflow/operators/bash_operator.py', + 'airflow/operators/branch_operator.py', + 'airflow/operators/check_operator.py', + 'airflow/operators/dagrun_operator.py', + 'airflow/operators/docker_operator.py', + 'airflow/operators/druid_check_operator.py', + 'airflow/operators/dummy.py', + 'airflow/operators/dummy_operator.py', + 'airflow/operators/email_operator.py', + 'airflow/operators/gcs_to_s3.py', + 'airflow/operators/google_api_to_s3_transfer.py', + 'airflow/operators/hive_operator.py', + 'airflow/operators/hive_stats_operator.py', + 'airflow/operators/hive_to_druid.py', + 'airflow/operators/hive_to_mysql.py', + 'airflow/operators/hive_to_samba_operator.py', + 'airflow/operators/http_operator.py', + 'airflow/operators/jdbc_operator.py', + 'airflow/operators/latest_only_operator.py', + 'airflow/operators/mssql_operator.py', + 'airflow/operators/mssql_to_hive.py', + 'airflow/operators/mysql_operator.py', + 'airflow/operators/mysql_to_hive.py', + 'airflow/operators/oracle_operator.py', + 'airflow/operators/papermill_operator.py', + 'airflow/operators/pig_operator.py', + 'airflow/operators/postgres_operator.py', + 'airflow/operators/presto_check_operator.py', + 'airflow/operators/presto_to_mysql.py', + 'airflow/operators/python_operator.py', + 'airflow/operators/redshift_to_s3_operator.py', + 'airflow/operators/s3_file_transform_operator.py', + 'airflow/operators/s3_to_hive_operator.py', + 'airflow/operators/s3_to_redshift_operator.py', + 'airflow/operators/slack_operator.py', + 'airflow/operators/sql.py', + 'airflow/operators/sql_branch_operator.py', + 'airflow/operators/sqlite_operator.py', + 'airflow/operators/subdag_operator.py', + 'airflow/sensors/base_sensor_operator.py', + 'airflow/sensors/date_time_sensor.py', + 'airflow/sensors/external_task_sensor.py', + 'airflow/sensors/hdfs_sensor.py', + 'airflow/sensors/hive_partition_sensor.py', + 'airflow/sensors/http_sensor.py', + 'airflow/sensors/metastore_partition_sensor.py', + 'airflow/sensors/named_hive_partition_sensor.py', + 'airflow/sensors/s3_key_sensor.py', + 'airflow/sensors/sql.py', + 'airflow/sensors/sql_sensor.py', + 'airflow/sensors/time_delta_sensor.py', + 'airflow/sensors/web_hdfs_sensor.py', + 'airflow/utils/log/cloudwatch_task_handler.py', + 'airflow/utils/log/es_task_handler.py', + 'airflow/utils/log/gcs_task_handler.py', + 'airflow/utils/log/s3_task_handler.py', + 'airflow/utils/log/stackdriver_task_handler.py', + 'airflow/utils/log/wasb_task_handler.py', +] + +CONTRIB_FILES = (AIRFLOW_SOURCES_ROOT / "airflow" / "contrib").rglob("*.py") + + +if __name__ == '__main__': + console = Console(color_system="standard", width=300) + all_deprecated_imports: Dict[str, Dict[str, List[Import]]] = defaultdict(lambda: defaultdict(list)) + # delete = True + delete = False + # for file in DEPRECATED_MODULES: + for file in CONTRIB_FILES: + file_path = AIRFLOW_SOURCES_ROOT / file + if not file_path.exists() or file.name == "__init__.py": + continue + original_module = os.fspath(file_path.parent.relative_to(AIRFLOW_SOURCES_ROOT)).replace(os.sep, ".") + for _import in get_imports(file_path): + module_name = file_path.name[: -len(".py")] + if _import.name not in ['warnings', 'RemovedInAirflow3Warning']: + all_deprecated_imports[original_module][module_name].append(_import) + if delete: + file_path.unlink() + + for module_path, package_imports in all_deprecated_imports.items(): + console.print(f"[yellow]Import dictionary for {module_path}:\n") + template = Environment(loader=BaseLoader()).from_string(DEPRECATED_CLASSES_TEMPLATE) + print(black_format(template.render(package_imports=dict(sorted(package_imports.items())))))