This is an automated email from the ASF dual-hosted git repository.

jrmccluskey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new e9a2b6008aa Consolidate linting and type checking configs into 
pyproject.toml (#38306)
e9a2b6008aa is described below

commit e9a2b6008aa43c17c790120898726961b1f90a8b
Author: Jack McCluskey <[email protected]>
AuthorDate: Thu May 7 13:09:18 2026 -0400

    Consolidate linting and type checking configs into pyproject.toml (#38306)
    
    * Consolidate linting and type checking configs into pyproject.toml
    
    * Restore dropped comments
    
    * add builtins check back
---
 sdks/python/.isort.cfg     |  58 ---------------
 sdks/python/pyproject.toml | 172 +++++++++++++++++++++++++++++++++++++++++++++
 sdks/python/pyrefly.toml   |  60 ----------------
 sdks/python/ruff.toml      |  96 -------------------------
 4 files changed, 172 insertions(+), 214 deletions(-)

diff --git a/sdks/python/.isort.cfg b/sdks/python/.isort.cfg
deleted file mode 100644
index a29f98cc90b..00000000000
--- a/sdks/python/.isort.cfg
+++ /dev/null
@@ -1,58 +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.
-#
-
-[settings]
-py_version=310
-line_length=120 
-old_finders=true
-order_by_type=true
-force_single_line=true
-combine_star=true
-src_paths=apache_beam
-extra_standard_library=dataclasses
-known_third_party=yaml
-skip=apiclient.py,
-     avroio_test.py,
-     cloudpickle.py,
-     datastore_wordcount.py,
-     datastoreio_test.py,
-     doctests_test.py,
-     fast_coders_test.py,
-     hadoopfilesystem.py,
-     iobase_test.py,
-     main_test.py,
-     model.py,
-     preprocess.py,
-     process_tfma.py,
-     render_test.py,
-     slow_coders_test.py,
-     taxi.py,
-     tfdv_analyze_and_validate.py,
-     yaml/main.py,
-     main_test.py,
-     yaml_testing_test.py,
-     bigquery_v2_client.py,
-     bigquery_v2_messages.py,
-     dataflow_v1b3_client.py,
-     dataflow_v1b3_messages.py,
-     storage_v1_client.py,
-     storage_v1_messages.py,
-     proto2_coder_test_messages_pb2.py,
-     cloudbuild_v1_client.py,
-     cloudbuild_v1_messages.py,
-     boto3_client.py,
-skip_glob=*.pxd,*.pyx,*pb2*.py,**/examples/**/*.py,**/portability/api/**/*.py,**/portability/api/__init__.py
\ No newline at end of file
diff --git a/sdks/python/pyproject.toml b/sdks/python/pyproject.toml
index c764298ebae..636849f54c9 100644
--- a/sdks/python/pyproject.toml
+++ b/sdks/python/pyproject.toml
@@ -44,3 +44,175 @@ requires = [
 
 # legacy installation is needed to generate `apache_beam.portability.api` 
package.
 build-backend = "setuptools.build_meta"
+
+[tool.isort]
+py_version = 310
+line_length = 120
+old_finders = true
+order_by_type = true
+force_single_line = true
+combine_star = true
+src_paths = ["apache_beam"]
+extra_standard_library = ["dataclasses"]
+known_third_party = ["yaml"]
+skip = [
+    "apiclient.py",
+    "avroio_test.py",
+    "cloudpickle.py",
+    "datastore_wordcount.py",
+    "datastoreio_test.py",
+    "doctests_test.py",
+    "fast_coders_test.py",
+    "hadoopfilesystem.py",
+    "iobase_test.py",
+    "main_test.py",
+    "model.py",
+    "preprocess.py",
+    "process_tfma.py",
+    "render_test.py",
+    "slow_coders_test.py",
+    "taxi.py",
+    "tfdv_analyze_and_validate.py",
+    "yaml/main.py",
+    "yaml_testing_test.py",
+    "bigquery_v2_client.py",
+    "bigquery_v2_messages.py",
+    "dataflow_v1b3_client.py",
+    "dataflow_v1b3_messages.py",
+    "storage_v1_client.py",
+    "storage_v1_messages.py",
+    "proto2_coder_test_messages_pb2.py",
+    "cloudbuild_v1_client.py",
+    "cloudbuild_v1_messages.py",
+    "boto3_client.py",
+]
+skip_glob = [
+    "*.pxd",
+    "*.pyx",
+    "*pb2*.py",
+    "**/examples/**/*.py",
+    "**/portability/api/**/*.py",
+    "**/portability/api/__init__.py",
+]
+
+[tool.ruff]
+exclude = [
+    ".bzr",
+    ".direnv",
+    ".eggs",
+    ".git",
+    ".git-rewrite",
+    ".hg",
+    ".ipynb_checkpoints",
+    ".mypy_cache",
+    ".nox",
+    ".pants.d",
+    ".pyenv",
+    ".pytest_cache",
+    ".pytype",
+    ".ruff_cache",
+    ".svn",
+    ".tox",
+    ".venv",
+    ".vscode",
+    "__pypackages__",
+    "_build",
+    "buck-out",
+    "build",
+    "dist",
+    "node_modules",
+    "site-packages",
+    "venv",
+    "*.pxd",
+    "*.pyx",
+    "*pb2*.py",
+    "**/examples/**/*.py",
+    "**/examples/**/*.ipynb",
+    "**/portability/api/**/*.py",
+    "**/portability/api/__init__.py",
+]
+target-version = "py310"
+src = ["apache_beam"]
+
+[tool.ruff.lint]
+select = ["E9", "PL", "F821", "F822", "F823", "UP006"]
+ignore = [
+    # Ignored Pylint Checks
+    "PLC0415",  # import-outside-toplevel
+    "PLR2004",  # magic-value-comparison
+    "PLR0913",  # too-many-arguments
+    "PLR0912",  # too-many-branches
+    "PLW0108",  # unnecessary-lambda
+    "PLW2901",  # redefined-loop-name
+    "PLR0915",  # too-many-statements
+    "PLR1714",  # repeated-equality-comparison
+    "PLR0911",  # too-many-return-statements
+    "PLR5501",  # collapsible-else-if
+    "PLW0603",  # global-statement
+    "PLR1730",  # if-stmt-min-max
+    "PLW1641",  # eq-without-hash
+    "PLW0602",  # global-variable-not-assigned
+    "PLC1802",  # len-test
+    "PLC3002",  # unnecessary-direct-lambda-call
+    "PLW0642",  # self-or-cls-assignment
+    "PLR1733",  # unnecessary-dict-index-lookup
+    "PLR0402",  # manual-from-import
+    "PLC0132",  # type-param-name-mismatch
+    "PLC0206",  # dict-index-missing-items
+    "PLC0207",  # missing-maxsplit-arg
+    "PLR1704",  # redefined-argument-from-local
+    "PLR1711",  # useless-return
+    "PLW0406",  # import-self
+    "PLW3301",  # nested-min-max
+    "PLR2044",  # empty-comment
+]
+
+# Allow fix for all enabled rules (when --fix) is provided.
+fixable = ["ALL"]
+unfixable = []
+
+# Allow unused variables when underscore-prefixed.
+dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
+
+[tool.pyrefly]
+project-includes = ["apache_beam"]
+python-version = "3.10.0"
+ignore-missing-imports = ["*"]
+untyped-def-behavior = "skip-and-infer-return-any"
+
+[tool.pyrefly.errors]
+missing-attribute = "ignore"
+invalid-annotation = "ignore"
+redundant-condition = "ignore"
+untyped-import = "ignore"
+# Beam-specific supressions to keep pyrefly green
+# These are in descending order of instances.
+#
+# TODO(https://github.com/apache/beam/issues/37699): Reduce the number of
+# ignored checks.
+bad-param-name-override = "ignore"
+bad-override = "ignore"
+bad-argument-type = "ignore"
+unsupported-operation = "ignore"
+implicit-import = "ignore"
+bad-function-definition = "ignore"
+bad-return = "ignore"
+unbound-name = "ignore"
+no-matching-overload = "ignore"
+bad-assignment = "ignore"
+missing-argument = "ignore"
+bad-index = "ignore"
+invalid-type-var = "ignore"
+unknown-name = "ignore"
+not-a-type = "ignore"
+deprecated = "ignore"
+not-callable = "ignore"
+invalid-argument = "ignore"
+invalid-inheritance = "ignore"
+not-iterable = "ignore"
+unexpected-keyword = "ignore"
+bad-specialization = "ignore"
+bad-context-manager = "ignore"
+invalid-yield = "ignore"
+bad-argument-count = "ignore"
+bad-typed-dict-key = "ignore"
diff --git a/sdks/python/pyrefly.toml b/sdks/python/pyrefly.toml
deleted file mode 100644
index 6247d79264a..00000000000
--- a/sdks/python/pyrefly.toml
+++ /dev/null
@@ -1,60 +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.
-#
-
-project-includes = ["apache_beam"]
-python-version = "3.10.0"
-ignore-missing-imports = ["*"]
-untyped-def-behavior = "skip-and-infer-return-any"
-
-[errors]
-missing-attribute = "ignore"
-invalid-annotation = "ignore"
-redundant-condition = "ignore"
-untyped-import = "ignore"
-# Beam-specific supressions to keep pyrefly green
-# These are in descending order of instances, e.g there are 
-# fewer violations for the check on line 40 than for the check on line 35.
-# violations.
-#
-# TODO(https://github.com/apache/beam/issues/37699): Reduce the number of
-# ignored checks.
-bad-param-name-override = "ignore"
-bad-override = "ignore"
-bad-argument-type = "ignore"
-unsupported-operation = "ignore"
-implicit-import = "ignore"
-bad-function-definition = "ignore"
-bad-return = "ignore"
-unbound-name = "ignore"
-no-matching-overload = "ignore"
-bad-assignment = "ignore"
-missing-argument = "ignore"
-bad-index = "ignore"
-invalid-type-var = "ignore"
-unknown-name = "ignore"
-not-a-type = "ignore"
-deprecated = "ignore"
-not-callable = "ignore"
-invalid-argument = "ignore"
-invalid-inheritance = "ignore"
-not-iterable = "ignore"
-unexpected-keyword = "ignore"
-bad-specialization = "ignore"
-bad-context-manager = "ignore"
-invalid-yield = "ignore"
-bad-argument-count = "ignore"
-bad-typed-dict-key = "ignore"
\ No newline at end of file
diff --git a/sdks/python/ruff.toml b/sdks/python/ruff.toml
deleted file mode 100644
index c0f896c2172..00000000000
--- a/sdks/python/ruff.toml
+++ /dev/null
@@ -1,96 +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.
-#
-
-exclude = [
-    ".bzr",
-    ".direnv",
-    ".eggs",
-    ".git",
-    ".git-rewrite",
-    ".hg",
-    ".ipynb_checkpoints",
-    ".mypy_cache",
-    ".nox",
-    ".pants.d",
-    ".pyenv",
-    ".pytest_cache",
-    ".pytype",
-    ".ruff_cache",
-    ".svn",
-    ".tox",
-    ".venv",
-    ".vscode",
-    "__pypackages__",
-    "_build",
-    "buck-out",
-    "build",
-    "dist",
-    "node_modules",
-    "site-packages",
-    "venv",
-    "*.pxd",
-    "*.pyx",
-    "*pb2*.py",
-    "**/examples/**/*.py",
-    "**/examples/**/*.ipynb",
-    "**/portability/api/**/*.py",
-    "**/portability/api/__init__.py",
-]
-
-target-version = "py310"
-
-src = ["apache_beam"]
-
-[lint]
-select = ["E9", "PL", "F821", "F822", "F823", "UP006"]
-ignore = [
-    # Ignored Pylint Checks
-    "PLC0415",  # import-outside-toplevel
-    "PLR2004",  # magic-value-comparison
-    "PLR0913",  # too-many-arguments
-    "PLR0912",  # too-many-branches
-    "PLW0108",  # unnecessary-lambda
-    "PLW2901",  # redefined-loop-name
-    "PLR0915",  # too-many-statements
-    "PLR1714",  # repeated-equality-comparison
-    "PLR0911",  # too-many-return-statements
-    "PLR5501",  # collapsible-else-if
-    "PLW0603",  # global-statement
-    "PLR1730",  # if-stmt-min-max
-    "PLW1641",  # eq-without-hash
-    "PLW0602",  # global-variable-not-assigned
-    "PLC1802",  # len-test
-    "PLC3002",  # unnecessary-direct-lambda-call
-    "PLW0642",  # self-or-cls-assignment
-    "PLR1733",  # unnecessary-dict-index-lookup
-    "PLR0402",  # manual-from-import
-    "PLC0132",  # type-param-name-mismatch
-    "PLC0206",  # dict-index-missing-items
-    "PLC0207",  # missing-maxsplit-arg
-    "PLR1704",  # redefined-argument-from-local
-    "PLR1711",  # useless-return
-    "PLW0406",  # import-self
-    "PLW3301",  # nested-min-max
-    "PLR2044",  # empty-comment
-]
-
-# Allow fix for all enabled rules (when `--fix`) is provided.
-fixable = ["ALL"]
-unfixable = []
-
-# Allow unused variables when underscore-prefixed.
-dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
\ No newline at end of file

Reply via email to