mirror of https://github.com/pybind/pybind11
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
"""Simple script for rebuilding .codespell-ignore-lines |
|
|
|
Usage: |
|
|
|
cat < /dev/null > .codespell-ignore-lines |
|
pre-commit run --all-files codespell >& /tmp/codespell_errors.txt |
|
python3 tools/codespell_ignore_lines_from_errors.py /tmp/codespell_errors.txt > .codespell-ignore-lines |
|
|
|
git diff to review changes, then commit, push. |
|
""" |
|
|
|
from __future__ import annotations |
|
|
|
import sys |
|
|
|
|
|
def run(args: list[str]) -> None: |
|
assert len(args) == 1, "codespell_errors.txt" |
|
cache = {} |
|
done = set() |
|
with open(args[0]) as f: |
|
lines = f.read().splitlines() |
|
|
|
for line in sorted(lines): |
|
i = line.find(" ==> ") |
|
if i > 0: |
|
flds = line[:i].split(":") |
|
if len(flds) >= 2: |
|
filename, line_num = flds[:2] |
|
if filename not in cache: |
|
with open(filename) as f: |
|
cache[filename] = f.read().splitlines() |
|
supp = cache[filename][int(line_num) - 1] |
|
if supp not in done: |
|
print(supp) |
|
done.add(supp) |
|
|
|
|
|
if __name__ == "__main__": |
|
run(args=sys.argv[1:])
|
|
|