Coverage for /usr/lib/python3/dist-packages/fontTools/otlLib/optimize/__init__.py: 21%
24 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 15:55 +0200
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 15:55 +0200
1from argparse import RawTextHelpFormatter
2from fontTools.otlLib.optimize.gpos import COMPRESSION_LEVEL, compact
3from fontTools.ttLib import TTFont
6def main(args=None):
7 """Optimize the layout tables of an existing font"""
8 from argparse import ArgumentParser
10 from fontTools import configLogger
12 parser = ArgumentParser(
13 prog="otlLib.optimize",
14 description=main.__doc__,
15 formatter_class=RawTextHelpFormatter,
16 )
17 parser.add_argument("font")
18 parser.add_argument(
19 "-o", metavar="OUTPUTFILE", dest="outfile", default=None, help="output file"
20 )
21 parser.add_argument(
22 "--gpos-compression-level",
23 help=COMPRESSION_LEVEL.help,
24 default=COMPRESSION_LEVEL.default,
25 choices=list(range(10)),
26 type=int,
27 )
28 logging_group = parser.add_mutually_exclusive_group(required=False)
29 logging_group.add_argument(
30 "-v", "--verbose", action="store_true", help="Run more verbosely."
31 )
32 logging_group.add_argument(
33 "-q", "--quiet", action="store_true", help="Turn verbosity off."
34 )
35 options = parser.parse_args(args)
37 configLogger(
38 level=("DEBUG" if options.verbose else "ERROR" if options.quiet else "INFO")
39 )
41 font = TTFont(options.font)
42 compact(font, options.gpos_compression_level)
43 font.save(options.outfile or options.font)
46if __name__ == "__main__":
47 import sys
49 if len(sys.argv) > 1:
50 sys.exit(main())
51 import doctest
53 sys.exit(doctest.testmod().failed)