From 404c28bc587961813b70f1f31288b5557bccb9ff Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Sun, 22 Jun 2025 10:30:27 +0200 Subject: [PATCH 1/2] fix: Python lint import-outside-top-level ruff rule PLC0415 --- pylib/gyp/MSVSVersion.py | 2 +- pylib/gyp/__init__.py | 2 +- pylib/gyp/common.py | 3 ++- pylib/gyp/generator/make.py | 2 +- pylib/gyp/generator/ninja.py | 7 +++---- pylib/gyp/mac_tool.py | 2 +- test_gyp.py | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pylib/gyp/MSVSVersion.py b/pylib/gyp/MSVSVersion.py index e1c153b5..a34631b4 100644 --- a/pylib/gyp/MSVSVersion.py +++ b/pylib/gyp/MSVSVersion.py @@ -219,7 +219,7 @@ def _RegistryGetValueUsingWinReg(key, value): contents of the registry key's value, or None on failure. Throws ImportError if winreg is unavailable. """ - from winreg import HKEY_LOCAL_MACHINE, OpenKey, QueryValueEx + from winreg import HKEY_LOCAL_MACHINE, OpenKey, QueryValueEx # noqa: PLC0415 try: root, subkey = key.split("\\", 1) assert root == "HKLM" # Only need HKLM for now. diff --git a/pylib/gyp/__init__.py b/pylib/gyp/__init__.py index 77800661..efc15fc6 100755 --- a/pylib/gyp/__init__.py +++ b/pylib/gyp/__init__.py @@ -489,7 +489,7 @@ def gyp_main(args): options, build_files_arg = parser.parse_args(args) if options.version: - import pkg_resources + import pkg_resources # noqa: PLC0415 print(f"v{pkg_resources.get_distribution('gyp-next').version}") return 0 build_files = build_files_arg diff --git a/pylib/gyp/common.py b/pylib/gyp/common.py index 35a64b1e..9431c432 100644 --- a/pylib/gyp/common.py +++ b/pylib/gyp/common.py @@ -583,7 +583,8 @@ def uniquer(seq, idfun=lambda x: x): # Based on http://code.activestate.com/recipes/576694/. -class OrderedSet(MutableSet): +class OrderedSet(MutableSet): # noqa: PLW1641 + # TODO (cclauss): Fix eq-without-hash ruff rule PLW1641 def __init__(self, iterable=None): self.end = end = [] end += [None, end, end] # sentinel node for doubly linked list diff --git a/pylib/gyp/generator/make.py b/pylib/gyp/generator/make.py index 4d4f0497..7118492e 100644 --- a/pylib/gyp/generator/make.py +++ b/pylib/gyp/generator/make.py @@ -78,7 +78,7 @@ def CalculateVariables(default_variables, params): # Copy additional generator configuration data from Xcode, which is shared # by the Mac Make generator. - import gyp.generator.xcode as xcode_generator + import gyp.generator.xcode as xcode_generator # noqa: PLC0415 global generator_additional_non_configuration_keys generator_additional_non_configuration_keys = getattr( diff --git a/pylib/gyp/generator/ninja.py b/pylib/gyp/generator/ninja.py index a387954c..d5dfa1a1 100644 --- a/pylib/gyp/generator/ninja.py +++ b/pylib/gyp/generator/ninja.py @@ -5,6 +5,7 @@ import collections import copy +import ctypes import hashlib import json import multiprocessing @@ -1993,7 +1994,7 @@ def CalculateVariables(default_variables, params): # Copy additional generator configuration data from Xcode, which is shared # by the Mac Ninja generator. - import gyp.generator.xcode as xcode_generator + import gyp.generator.xcode as xcode_generator # noqa: PLC0415 generator_additional_non_configuration_keys = getattr( xcode_generator, "generator_additional_non_configuration_keys", [] @@ -2016,7 +2017,7 @@ def CalculateVariables(default_variables, params): # Copy additional generator configuration data from VS, which is shared # by the Windows Ninja generator. - import gyp.generator.msvs as msvs_generator + import gyp.generator.msvs as msvs_generator # noqa: PLC0415 generator_additional_non_configuration_keys = getattr( msvs_generator, "generator_additional_non_configuration_keys", [] @@ -2084,8 +2085,6 @@ def GetDefaultConcurrentLinks(): return pool_size if sys.platform in ("win32", "cygwin"): - import ctypes - class MEMORYSTATUSEX(ctypes.Structure): _fields_ = [ ("dwLength", ctypes.c_ulong), diff --git a/pylib/gyp/mac_tool.py b/pylib/gyp/mac_tool.py index d51362f5..58fb9c73 100755 --- a/pylib/gyp/mac_tool.py +++ b/pylib/gyp/mac_tool.py @@ -141,7 +141,7 @@ def _CopyStringsFile(self, source, dest): # CFPropertyListCreateFromXMLData(): Old-style plist parser: missing # semicolon in dictionary. # on invalid files. Do the same kind of validation. - import CoreFoundation + import CoreFoundation # noqa: PLC0415 with open(source, "rb") as in_file: s = in_file.read() diff --git a/test_gyp.py b/test_gyp.py index b7bb956b..8e910a2b 100755 --- a/test_gyp.py +++ b/test_gyp.py @@ -148,13 +148,13 @@ def print_configuration_info(): print("Test configuration:") if sys.platform == "darwin": sys.path.append(os.path.abspath("test/lib")) - import TestMac + import TestMac # noqa: PLC0415 print(f" Mac {platform.mac_ver()[0]} {platform.mac_ver()[2]}") print(f" Xcode {TestMac.Xcode.Version()}") elif sys.platform == "win32": sys.path.append(os.path.abspath("pylib")) - import gyp.MSVSVersion + import gyp.MSVSVersion # noqa: PLC0415 print(" Win %s %s\n" % platform.win32_ver()[0:2]) print(" MSVS %s" % gyp.MSVSVersion.SelectVisualStudioVersion().Description()) From ef652f619f0e6d667290f8463c44217fd7ddb42a Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Sun, 22 Jun 2025 10:35:55 +0200 Subject: [PATCH 2/2] Use project.requires-python not tool.ruff.target-version --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d6ed4c7d..417d313d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,6 @@ gyp = "gyp:script_main" [tool.ruff] extend-exclude = ["pylib/packaging"] line-length = 88 -target-version = "py37" [tool.ruff.lint] select = [