mirror of https://github.com/python/cpython
Lint and format Tools/build/check-warnings.py (#124382)
This commit is contained in:
parent
38a887dc3e
commit
e256a7590a
|
@ -10,6 +10,10 @@ repos:
|
||||||
name: Run Ruff (lint) on Lib/test/
|
name: Run Ruff (lint) on Lib/test/
|
||||||
args: [--exit-non-zero-on-fix]
|
args: [--exit-non-zero-on-fix]
|
||||||
files: ^Lib/test/
|
files: ^Lib/test/
|
||||||
|
- id: ruff
|
||||||
|
name: Run Ruff (lint) on Tools/build/check_warnings.py
|
||||||
|
args: [--exit-non-zero-on-fix, --config=Tools/build/.ruff.toml]
|
||||||
|
files: ^Tools/build/check_warnings.py
|
||||||
- id: ruff
|
- id: ruff
|
||||||
name: Run Ruff (lint) on Argument Clinic
|
name: Run Ruff (lint) on Argument Clinic
|
||||||
args: [--exit-non-zero-on-fix, --config=Tools/clinic/.ruff.toml]
|
args: [--exit-non-zero-on-fix, --config=Tools/clinic/.ruff.toml]
|
||||||
|
@ -22,6 +26,11 @@ repos:
|
||||||
- repo: https://github.com/psf/black-pre-commit-mirror
|
- repo: https://github.com/psf/black-pre-commit-mirror
|
||||||
rev: 24.8.0
|
rev: 24.8.0
|
||||||
hooks:
|
hooks:
|
||||||
|
- id: black
|
||||||
|
name: Run Black on Tools/build/check_warnings.py
|
||||||
|
files: ^Tools/build/check_warnings.py
|
||||||
|
language_version: python3.12
|
||||||
|
args: [--line-length=79]
|
||||||
- id: black
|
- id: black
|
||||||
name: Run Black on Tools/jit/
|
name: Run Black on Tools/jit/
|
||||||
files: ^Tools/jit/
|
files: ^Tools/jit/
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
target-version = "py310"
|
||||||
|
fix = true
|
||||||
|
line-length = 79
|
||||||
|
|
||||||
|
[lint]
|
||||||
|
select = [
|
||||||
|
"C4", # flake8-comprehensions
|
||||||
|
"E", # pycodestyle
|
||||||
|
"F", # pyflakes
|
||||||
|
"I", # isort
|
||||||
|
"ISC", # flake8-implicit-str-concat
|
||||||
|
"LOG", # flake8-logging
|
||||||
|
"PGH", # pygrep-hooks
|
||||||
|
"PT", # flake8-pytest-style
|
||||||
|
"PYI", # flake8-pyi
|
||||||
|
"RUF100", # Ban unused `# noqa` comments
|
||||||
|
"UP", # pyupgrade
|
||||||
|
"W", # pycodestyle
|
||||||
|
"YTT", # flake8-2020
|
||||||
|
]
|
|
@ -4,9 +4,9 @@ exist only in files that are expected to have warnings.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from collections import defaultdict
|
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
from collections import defaultdict
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import NamedTuple
|
from typing import NamedTuple
|
||||||
|
|
||||||
|
@ -38,7 +38,8 @@ def parse_warning_ignore_file(file_path: str) -> set[IgnoreRule]:
|
||||||
# Directories must have a wildcard count
|
# Directories must have a wildcard count
|
||||||
if is_directory and count != "*":
|
if is_directory and count != "*":
|
||||||
print(
|
print(
|
||||||
f"Error parsing ignore file: {file_path} at line: {i}"
|
f"Error parsing ignore file: {file_path} "
|
||||||
|
f"at line: {i}"
|
||||||
)
|
)
|
||||||
print(
|
print(
|
||||||
f"Directory {file_name} must have count set to *"
|
f"Directory {file_name} must have count set to *"
|
||||||
|
@ -93,9 +94,10 @@ def extract_warnings_from_compiler_output(
|
||||||
.rstrip("]"),
|
.rstrip("]"),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
except:
|
except AttributeError:
|
||||||
print(
|
print(
|
||||||
f"Error parsing compiler output. Unable to extract warning on line {i}:\n{line}"
|
f"Error parsing compiler output. "
|
||||||
|
f"Unable to extract warning on line {i}:\n{line}"
|
||||||
)
|
)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
@ -125,8 +127,9 @@ def get_warnings_by_file(warnings: list[dict]) -> dict[str, list[dict]]:
|
||||||
def is_file_ignored(
|
def is_file_ignored(
|
||||||
file_path: str, ignore_rules: set[IgnoreRule]
|
file_path: str, ignore_rules: set[IgnoreRule]
|
||||||
) -> IgnoreRule | None:
|
) -> IgnoreRule | None:
|
||||||
"""
|
"""Return the IgnoreRule object for the file path.
|
||||||
Returns the IgnoreRule object for the file path if there is a related rule for it
|
|
||||||
|
Return ``None`` if there is no related rule for that path.
|
||||||
"""
|
"""
|
||||||
for rule in ignore_rules:
|
for rule in ignore_rules:
|
||||||
if rule.is_directory:
|
if rule.is_directory:
|
||||||
|
@ -191,7 +194,10 @@ def get_unexpected_improvements(
|
||||||
"""
|
"""
|
||||||
unexpected_improvements = []
|
unexpected_improvements = []
|
||||||
for rule in ignore_rules:
|
for rule in ignore_rules:
|
||||||
if not rule.ignore_all and rule.file_path not in files_with_warnings.keys():
|
if (
|
||||||
|
not rule.ignore_all
|
||||||
|
and rule.file_path not in files_with_warnings.keys()
|
||||||
|
):
|
||||||
if rule.file_path not in files_with_warnings.keys():
|
if rule.file_path not in files_with_warnings.keys():
|
||||||
unexpected_improvements.append((rule.file_path, rule.count, 0))
|
unexpected_improvements.append((rule.file_path, rule.count, 0))
|
||||||
elif len(files_with_warnings[rule.file_path]) < rule.count:
|
elif len(files_with_warnings[rule.file_path]) < rule.count:
|
||||||
|
|
Loading…
Reference in New Issue