File: check-epub.py

package info (click to toggle)
python3.14 3.14.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 127,032 kB
  • sloc: python: 747,410; ansic: 714,366; xml: 31,250; sh: 5,989; cpp: 4,063; makefile: 1,988; objc: 787; lisp: 502; javascript: 136; asm: 75; csh: 12
file content (30 lines) | stat: -rw-r--r-- 774 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from pathlib import Path

CPYTHON_ROOT = Path(
    __file__,  # cpython/Doc/tools/check-epub.py
    '..',  # cpython/Doc/tools
    '..',  # cpython/Doc
    '..',  # cpython
).resolve()
EPUBCHECK_PATH = CPYTHON_ROOT / 'Doc' / 'epubcheck.txt'


def main() -> int:
    lines = EPUBCHECK_PATH.read_text(encoding='utf-8').splitlines()
    fatal_errors = [line for line in lines if line.startswith('FATAL')]

    if fatal_errors:
        err_count = len(fatal_errors)
        s = 's' * (err_count != 1)
        print()
        print(f'Error: epubcheck reported {err_count} fatal error{s}:')
        print()
        print('\n'.join(fatal_errors))
        return 1

    print('Success: no fatal errors found.')
    return 0


if __name__ == '__main__':
    raise SystemExit(main())