File: check-epub.py

package info (click to toggle)
python3.13 3.13.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 121,328 kB
  • sloc: python: 704,014; ansic: 653,914; xml: 31,250; sh: 5,844; cpp: 4,326; makefile: 1,981; objc: 787; lisp: 502; javascript: 213; asm: 75; csh: 12
file content (30 lines) | stat: -rw-r--r-- 774 bytes parent folder | download | duplicates (2)
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())