From 50c3fd6d8e131572a9e4769f92eecc86b736c0ae Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Tue, 10 Oct 2023 11:35:36 +0200 Subject: [PATCH] gh-110558: Enable ruff's pyupgrade rules when running on Argument Clinic (GH-110603) (cherry picked from commit fc811c8d205db9c19f42890e2c4193a0c2f87965) Co-authored-by: Alex Waygood --- .pre-commit-config.yaml | 2 +- Lib/test/test_clinic.py | 6 +++--- Tools/clinic/.ruff.toml | 15 +++++++++++++++ Tools/clinic/clinic.py | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ffca103bb33e86..8ad1f33d3a6050 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: args: [--exit-non-zero-on-fix] files: ^Lib/test/ - id: ruff - name: Run Ruff on Tools/clinic/ + name: Run Ruff on Argument Clinic args: [--exit-non-zero-on-fix, --config=Tools/clinic/.ruff.toml] files: ^Tools/clinic/|Lib/test/test_clinic.py diff --git a/Lib/test/test_clinic.py b/Lib/test/test_clinic.py index 23487958f45648..05eea78a0ce4e5 100644 --- a/Lib/test/test_clinic.py +++ b/Lib/test/test_clinic.py @@ -1394,7 +1394,7 @@ def expect_failure(self, *args): def test_external(self): CLINIC_TEST = 'clinic.test.c' source = support.findfile(CLINIC_TEST) - with open(source, 'r', encoding='utf-8') as f: + with open(source, encoding='utf-8') as f: orig_contents = f.read() # Run clinic CLI and verify that it does not complain. @@ -1402,7 +1402,7 @@ def test_external(self): out = self.expect_success("-f", "-o", TESTFN, source) self.assertEqual(out, "") - with open(TESTFN, 'r', encoding='utf-8') as f: + with open(TESTFN, encoding='utf-8') as f: new_contents = f.read() self.assertEqual(new_contents, orig_contents) @@ -1463,7 +1463,7 @@ def test_cli_force(self): "/*[clinic end generated code: " "output=2124c291eb067d76 input=9543a8d2da235301]*/\n" ) - with open(fn, 'r', encoding='utf-8') as f: + with open(fn, encoding='utf-8') as f: generated = f.read() self.assertTrue(generated.endswith(checksum)) diff --git a/Tools/clinic/.ruff.toml b/Tools/clinic/.ruff.toml index 3bc9d908ed3296..cbb3a9a8f3a8c2 100644 --- a/Tools/clinic/.ruff.toml +++ b/Tools/clinic/.ruff.toml @@ -2,9 +2,24 @@ target-version = "py310" fix = true select = [ "F", # Enable all pyflakes rules + "UP", # Enable all pyupgrade rules by default "RUF100", # Ban unused `# noqa` comments "PGH004", # Ban blanket `# noqa` comments (only ignore specific error codes) ] +ignore = [ + # Unnecessary parentheses to functools.lru_cache: just leads to unnecessary churn. + # https://github.com/python/cpython/pull/104684#discussion_r1199653347. + "UP011", + # Use format specifiers instead of %-style formatting. + # Doesn't always make code more readable. + "UP031", + # Use f-strings instead of format specifiers. + # Doesn't always make code more readable. + "UP032", + # Use PEP-604 unions rather than tuples for isinstance() checks. + # Makes code slower and more verbose. https://github.com/astral-sh/ruff/issues/7871. + "UP038", +] unfixable = [ # The autofixes sometimes do the wrong things for these; # it's better to have to manually look at the code and see how it needs fixing diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index fd394c92cad9c6..921b77bad51330 100755 --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -1968,7 +1968,7 @@ def dump(self): def write_file(filename: str, new_contents: str) -> None: try: - with open(filename, 'r', encoding="utf-8") as fp: + with open(filename, encoding="utf-8") as fp: old_contents = fp.read() if old_contents == new_contents: