This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch v2-8-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 188d121d951ea68f1cdfa0a4b3d6970349be1902 Author: Jarek Potiuk <[email protected]> AuthorDate: Sun Jan 7 20:02:08 2024 +0100 Upgrade to latest ruff and remove ISC001 warning from output (#36649) This PR upgrades to latest ruff, and removes the ISC001 warning that warns us against potential conflict between ruff and ruff-formatter when two strings in one line get concatenated. This warning makes sense if you run both ruff and formatting at the same time, but in our case we are doing it in two separate steps - one step is to run ruff linting and the second step is to run formatting and running formatting already runs after linting is complete. This warnign is pretty misleading as it distracts from real formatting issues you might have. There is - unfortunately - no standard way to remove the warning so we have to do it a little "around" - rather than running the pre-commit directly from ruff website, we run our local pre-commit with few lines of Python code that runs ruff through shell and greps out the ISC001 warning. We also force color to make sure the output is still coloured. (cherry picked from commit 11c46fd2ec165da32202b464be7c2df5cca4d6c0) --- .pre-commit-config.yaml | 32 ++-- STATIC_CODE_CHECKS.rst | 4 +- airflow/contrib/operators/__init__.py | 189 ++++++++++-------------- airflow/contrib/secrets/__init__.py | 2 +- airflow/contrib/sensors/__init__.py | 10 +- airflow/contrib/utils/__init__.py | 4 +- pyproject.toml | 2 +- scripts/ci/pre_commit/pre_commit_ruff_format.py | 26 ++++ setup.py | 2 +- 9 files changed, 131 insertions(+), 140 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8676195a42..51aba2e09f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -173,18 +173,6 @@ repos: additional_dependencies: ['pyyaml'] pass_filenames: false require_serial: true - - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.1.9 - hooks: - # Since ruff makes use of multiple cores we _purposefully_ don't run this in docker so it can use the - # host CPU to it's fullest - - id: ruff - name: ruff-lint - args: [--fix] - exclude: ^.*/.*_vendor/|^tests/dags/test_imports.py - - id: ruff-format - name: ruff-format - exclude: ^.*/.*_vendor/|^tests/dags/test_imports.py|^airflow/contrib/ - repo: https://github.com/asottile/blacken-docs rev: 1.16.0 hooks: @@ -300,6 +288,26 @@ repos: # changes quickly - especially when we want the early modifications from the first local group # to be applied before the non-local pre-commits are run hooks: + - id: ruff + name: Run 'ruff' for extremely fast Python linting + description: "Run 'ruff' for extremely fast Python linting" + entry: ruff check --force-exclude + language: python + types_or: [python, pyi] + args: [--fix] + require_serial: true + additional_dependencies: ["ruff==0.1.11"] + exclude: ^.*/.*_vendor/|^tests/dags/test_imports.py + - id: ruff-format + name: Run 'ruff format' for extremely fast Python formatting + description: "Run 'ruff format' for extremely fast Python formatting" + entry: ./scripts/ci/pre_commit/pre_commit_ruff_format.py + language: python + types_or: [python, pyi] + args: [] + require_serial: true + additional_dependencies: ["ruff==0.1.11"] + exclude: ^.*/.*_vendor/|^tests/dags/test_imports.py|^airflow/contrib/ - id: replace-bad-characters name: Replace bad characters entry: ./scripts/ci/pre_commit/pre_commit_replace_bad_characters.py diff --git a/STATIC_CODE_CHECKS.rst b/STATIC_CODE_CHECKS.rst index 57d11e42c2..81911d7375 100644 --- a/STATIC_CODE_CHECKS.rst +++ b/STATIC_CODE_CHECKS.rst @@ -360,9 +360,9 @@ require Breeze Docker image to be built locally. +-----------------------------------------------------------+--------------------------------------------------------------+---------+ | rst-backticks | Check if RST files use double backticks for code | | +-----------------------------------------------------------+--------------------------------------------------------------+---------+ -| ruff | ruff-lint | | +| ruff | Run 'ruff' for extremely fast Python linting | | +-----------------------------------------------------------+--------------------------------------------------------------+---------+ -| ruff-format | ruff-format | | +| ruff-format | Run 'ruff format' for extremely fast Python formatting | | +-----------------------------------------------------------+--------------------------------------------------------------+---------+ | shellcheck | Check Shell scripts syntax correctness | | +-----------------------------------------------------------+--------------------------------------------------------------+---------+ diff --git a/airflow/contrib/operators/__init__.py b/airflow/contrib/operators/__init__.py index faf1899606..86351d05a1 100644 --- a/airflow/contrib/operators/__init__.py +++ b/airflow/contrib/operators/__init__.py @@ -180,9 +180,8 @@ __deprecated_classes = { "DataprocDeleteClusterOperator": ( "airflow.providers.google.cloud.operators.dataproc.DataprocDeleteClusterOperator" ), - "DataprocInstantiateInlineWorkflowTemplateOperator": - "airflow.providers.google.cloud.operators.dataproc." - "DataprocInstantiateInlineWorkflowTemplateOperator", + "DataprocInstantiateInlineWorkflowTemplateOperator": "airflow.providers.google.cloud.operators.dataproc." + "DataprocInstantiateInlineWorkflowTemplateOperator", "DataprocInstantiateWorkflowTemplateOperator": ( "airflow.providers.google.cloud.operators.dataproc.DataprocInstantiateWorkflowTemplateOperator" ), @@ -240,9 +239,8 @@ __deprecated_classes = { "DataProcSparkSqlOperator": ( "airflow.providers.google.cloud.operators.dataproc.DataprocSubmitSparkSqlJobOperator" ), - "DataprocWorkflowTemplateInstantiateInlineOperator": - "airflow.providers.google.cloud.operators.dataproc." - "DataprocInstantiateInlineWorkflowTemplateOperator", + "DataprocWorkflowTemplateInstantiateInlineOperator": "airflow.providers.google.cloud.operators.dataproc." + "DataprocInstantiateInlineWorkflowTemplateOperator", "DataprocWorkflowTemplateInstantiateOperator": ( "airflow.providers.google.cloud.operators.dataproc.DataprocInstantiateWorkflowTemplateOperator" ), @@ -351,9 +349,8 @@ __deprecated_classes = { "ComputeEngineCopyInstanceTemplateOperator": ( "airflow.providers.google.cloud.operators.compute.ComputeEngineCopyInstanceTemplateOperator" ), - "ComputeEngineInstanceGroupUpdateManagerTemplateOperator": - "airflow.providers.google.cloud.operators.compute." - "ComputeEngineInstanceGroupUpdateManagerTemplateOperator", + "ComputeEngineInstanceGroupUpdateManagerTemplateOperator": "airflow.providers.google.cloud.operators.compute." + "ComputeEngineInstanceGroupUpdateManagerTemplateOperator", "ComputeEngineSetMachineTypeOperator": ( "airflow.providers.google.cloud.operators.compute.ComputeEngineSetMachineTypeOperator" ), @@ -364,9 +361,8 @@ __deprecated_classes = { "airflow.providers.google.cloud.operators.compute.ComputeEngineStopInstanceOperator" ), "GceBaseOperator": "airflow.providers.google.cloud.operators.compute.ComputeEngineBaseOperator", - "GceInstanceGroupManagerUpdateTemplateOperator": - "airflow.providers.google.cloud.operators.compute." - "ComputeEngineInstanceGroupUpdateManagerTemplateOperator", + "GceInstanceGroupManagerUpdateTemplateOperator": "airflow.providers.google.cloud.operators.compute." + "ComputeEngineInstanceGroupUpdateManagerTemplateOperator", "GceInstanceStartOperator": ( "airflow.providers.google.cloud.operators.compute.ComputeEngineStartInstanceOperator" ), @@ -513,30 +509,22 @@ __deprecated_classes = { ), }, "gcp_natural_language_operator": { - "CloudNaturalLanguageAnalyzeEntitiesOperator": - "airflow.providers.google.cloud.operators.natural_language." - "CloudNaturalLanguageAnalyzeEntitiesOperator", - "CloudNaturalLanguageAnalyzeEntitySentimentOperator": - "airflow.providers.google.cloud.operators.natural_language." - "CloudNaturalLanguageAnalyzeEntitySentimentOperator", - "CloudNaturalLanguageAnalyzeSentimentOperator": - "airflow.providers.google.cloud.operators.natural_language." - "CloudNaturalLanguageAnalyzeSentimentOperator", - "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", + "CloudNaturalLanguageAnalyzeEntitiesOperator": "airflow.providers.google.cloud.operators.natural_language." + "CloudNaturalLanguageAnalyzeEntitiesOperator", + "CloudNaturalLanguageAnalyzeEntitySentimentOperator": "airflow.providers.google.cloud.operators.natural_language." + "CloudNaturalLanguageAnalyzeEntitySentimentOperator", + "CloudNaturalLanguageAnalyzeSentimentOperator": "airflow.providers.google.cloud.operators.natural_language." + "CloudNaturalLanguageAnalyzeSentimentOperator", + "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": ( @@ -692,66 +680,46 @@ __deprecated_classes = { ), }, "gcp_transfer_operator": { - "CloudDataTransferServiceCancelOperationOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceCancelOperationOperator", - "CloudDataTransferServiceCreateJobOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceCreateJobOperator", - "CloudDataTransferServiceDeleteJobOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceDeleteJobOperator", - "CloudDataTransferServiceGCSToGCSOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceGCSToGCSOperator", - "CloudDataTransferServiceGetOperationOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceGetOperationOperator", - "CloudDataTransferServiceListOperationsOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceListOperationsOperator", - "CloudDataTransferServicePauseOperationOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServicePauseOperationOperator", - "CloudDataTransferServiceResumeOperationOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceResumeOperationOperator", - "CloudDataTransferServiceS3ToGCSOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceS3ToGCSOperator", - "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", + "CloudDataTransferServiceCancelOperationOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceCancelOperationOperator", + "CloudDataTransferServiceCreateJobOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceCreateJobOperator", + "CloudDataTransferServiceDeleteJobOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceDeleteJobOperator", + "CloudDataTransferServiceGCSToGCSOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceGCSToGCSOperator", + "CloudDataTransferServiceGetOperationOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceGetOperationOperator", + "CloudDataTransferServiceListOperationsOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceListOperationsOperator", + "CloudDataTransferServicePauseOperationOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServicePauseOperationOperator", + "CloudDataTransferServiceResumeOperationOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceResumeOperationOperator", + "CloudDataTransferServiceS3ToGCSOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceS3ToGCSOperator", + "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": ( @@ -767,15 +735,12 @@ __deprecated_classes = { ), }, "gcp_video_intelligence_operator": { - "CloudVideoIntelligenceDetectVideoExplicitContentOperator": - "airflow.providers.google.cloud.operators.video_intelligence." - "CloudVideoIntelligenceDetectVideoExplicitContentOperator", - "CloudVideoIntelligenceDetectVideoLabelsOperator": - "airflow.providers.google.cloud.operators.video_intelligence." - "CloudVideoIntelligenceDetectVideoLabelsOperator", - "CloudVideoIntelligenceDetectVideoShotsOperator": - "airflow.providers.google.cloud.operators.video_intelligence." - "CloudVideoIntelligenceDetectVideoShotsOperator", + "CloudVideoIntelligenceDetectVideoExplicitContentOperator": "airflow.providers.google.cloud.operators.video_intelligence." + "CloudVideoIntelligenceDetectVideoExplicitContentOperator", + "CloudVideoIntelligenceDetectVideoLabelsOperator": "airflow.providers.google.cloud.operators.video_intelligence." + "CloudVideoIntelligenceDetectVideoLabelsOperator", + "CloudVideoIntelligenceDetectVideoShotsOperator": "airflow.providers.google.cloud.operators.video_intelligence." + "CloudVideoIntelligenceDetectVideoShotsOperator", }, "gcp_vision_operator": { "CloudVisionAddProductToProductSetOperator": ( @@ -945,9 +910,7 @@ __deprecated_classes = { "JiraOperator": "airflow.providers.atlassian.jira.operators.jira.JiraOperator", }, "kubernetes_pod_operator": { - "KubernetesPodOperator": ( - "airflow.providers.cncf.kubernetes.operators.pod.KubernetesPodOperator" - ), + "KubernetesPodOperator": ("airflow.providers.cncf.kubernetes.operators.pod.KubernetesPodOperator"), }, "mlengine_operator": { "MLEngineManageModelOperator": ( @@ -997,9 +960,8 @@ __deprecated_classes = { "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", + "OracleToAzureDataLakeOperator": "airflow.providers.microsoft.azure.transfers." + "oracle_to_azure_data_lake.OracleToAzureDataLakeOperator", }, "oracle_to_oracle_transfer": { "OracleToOracleOperator": ( @@ -1056,9 +1018,8 @@ __deprecated_classes = { "S3ToGCSOperator": "airflow.providers.google.cloud.transfers.s3_to_gcs.S3ToGCSOperator", }, "s3_to_gcs_transfer_operator": { - "CloudDataTransferServiceS3ToGCSOperator": - "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." - "CloudDataTransferServiceS3ToGCSOperator", + "CloudDataTransferServiceS3ToGCSOperator": "airflow.providers.google.cloud.operators.cloud_storage_transfer_service." + "CloudDataTransferServiceS3ToGCSOperator", }, "s3_to_sftp_operator": { "S3ToSFTPOperator": "airflow.providers.amazon.aws.transfers.s3_to_sftp.S3ToSFTPOperator", diff --git a/airflow/contrib/secrets/__init__.py b/airflow/contrib/secrets/__init__.py index 7498cf0fc5..d97107bfed 100644 --- a/airflow/contrib/secrets/__init__.py +++ b/airflow/contrib/secrets/__init__.py @@ -26,7 +26,7 @@ from airflow.utils.deprecation_tools import add_deprecated_classes warnings.warn( "This module is deprecated. Please use airflow.providers.*.secrets.", RemovedInAirflow3Warning, - stacklevel=2 + stacklevel=2, ) __deprecated_classes = { diff --git a/airflow/contrib/sensors/__init__.py b/airflow/contrib/sensors/__init__.py index 9d9d1c1557..811263de75 100644 --- a/airflow/contrib/sensors/__init__.py +++ b/airflow/contrib/sensors/__init__.py @@ -85,12 +85,10 @@ __deprecated_classes = { "FTPSSensor": "airflow.providers.ftp.sensors.ftp.FTPSSensor", }, "gcp_transfer_sensor": { - "CloudDataTransferServiceJobStatusSensor": - "airflow.providers.google.cloud.sensors.cloud_storage_transfer_service." - "CloudDataTransferServiceJobStatusSensor", - "GCPTransferServiceWaitForJobStatusSensor": - "airflow.providers.google.cloud.sensors.cloud_storage_transfer_service." - "CloudDataTransferServiceJobStatusSensor", + "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", diff --git a/airflow/contrib/utils/__init__.py b/airflow/contrib/utils/__init__.py index c24b7a24e9..0202a1c7c1 100644 --- a/airflow/contrib/utils/__init__.py +++ b/airflow/contrib/utils/__init__.py @@ -24,9 +24,7 @@ from airflow.exceptions import RemovedInAirflow3Warning from airflow.utils.deprecation_tools import add_deprecated_classes warnings.warn( - "This module is deprecated. Please use `airflow.utils`.", - RemovedInAirflow3Warning, - stacklevel=2 + "This module is deprecated. Please use `airflow.utils`.", RemovedInAirflow3Warning, stacklevel=2 ) __deprecated_classes = { diff --git a/pyproject.toml b/pyproject.toml index 7a305243a1..a8f4bbdeec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,7 +63,7 @@ extend-select = [ "TID251", # Specific modules or module members that may not be imported or accessed "TID253", # Ban certain modules from being imported at module level ] -extend-ignore = [ +ignore = [ "D203", "D212", "D213", diff --git a/scripts/ci/pre_commit/pre_commit_ruff_format.py b/scripts/ci/pre_commit/pre_commit_ruff_format.py new file mode 100755 index 0000000000..f7f9f0f599 --- /dev/null +++ b/scripts/ci/pre_commit/pre_commit_ruff_format.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +# 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. +from __future__ import annotations + +import os +import subprocess + +ruff_format_cmd = "ruff format --force-exclude 2>&1 | grep -v '`ISC001`. To avoid unexpected behavior'" +envcopy = os.environ.copy() +envcopy["CLICOLOR_FORCE"] = "1" +subprocess.run(ruff_format_cmd, shell=True, check=True, env=envcopy) diff --git a/setup.py b/setup.py index 2b01c28a6b..0628f3aacf 100644 --- a/setup.py +++ b/setup.py @@ -466,7 +466,7 @@ _devel_only_sentry = [ _devel_only_static_checks = [ "pre-commit", "black", - "ruff>=0.0.219", + "ruff==0.1.11", "yamllint", ]
