Skip to content

Lint and format Tools/build/check-warnings.py #124382

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ repos:
name: Run Ruff (lint) on Lib/test/
args: [--exit-non-zero-on-fix]
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
name: Run Ruff (lint) on Argument Clinic
args: [--exit-non-zero-on-fix, --config=Tools/clinic/.ruff.toml]
Expand All @@ -22,6 +26,11 @@ repos:
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 24.8.0
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
name: Run Black on Tools/jit/
files: ^Tools/jit/
Expand Down
20 changes: 20 additions & 0 deletions Tools/build/.ruff.toml
Original file line number Diff line number Diff line change
@@ -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
]
20 changes: 13 additions & 7 deletions Tools/build/check_warnings.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
"""

import argparse
from collections import defaultdict
import re
import sys
from collections import defaultdict
from pathlib import Path
from typing import NamedTuple

Expand Down Expand Up @@ -38,7 +38,8 @@ def parse_warning_ignore_file(file_path: str) -> set[IgnoreRule]:
# Directories must have a wildcard count
if is_directory and count != "*":
print(
f"Error parsing ignore file: {file_path} at line: {i}"
f"Error parsing ignore file: {file_path} "
f"at line: {i}"
)
print(
f"Directory {file_name} must have count set to *"
Expand Down Expand Up @@ -93,9 +94,10 @@ def extract_warnings_from_compiler_output(
.rstrip("]"),
}
)
except:
except AttributeError:
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)

Expand Down Expand Up @@ -125,8 +127,9 @@ def get_warnings_by_file(warnings: list[dict]) -> dict[str, list[dict]]:
def is_file_ignored(
file_path: str, ignore_rules: set[IgnoreRule]
) -> IgnoreRule | None:
"""
Returns the IgnoreRule object for the file path if there is a related rule for it
"""Return the IgnoreRule object for the file path.

Return ``None`` if there is no related rule for that path.
"""
for rule in ignore_rules:
if rule.is_directory:
Expand Down Expand Up @@ -191,7 +194,10 @@ def get_unexpected_improvements(
"""
unexpected_improvements = []
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():
unexpected_improvements.append((rule.file_path, rule.count, 0))
elif len(files_with_warnings[rule.file_path]) < rule.count:
Expand Down
Loading