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

1from argparse import RawTextHelpFormatter 

2from fontTools.otlLib.optimize.gpos import COMPRESSION_LEVEL, compact 

3from fontTools.ttLib import TTFont 

4 

5 

6def main(args=None): 

7 """Optimize the layout tables of an existing font""" 

8 from argparse import ArgumentParser 

9 

10 from fontTools import configLogger 

11 

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) 

36 

37 configLogger( 

38 level=("DEBUG" if options.verbose else "ERROR" if options.quiet else "INFO") 

39 ) 

40 

41 font = TTFont(options.font) 

42 compact(font, options.gpos_compression_level) 

43 font.save(options.outfile or options.font) 

44 

45 

46if __name__ == "__main__": 

47 import sys 

48 

49 if len(sys.argv) > 1: 

50 sys.exit(main()) 

51 import doctest 

52 

53 sys.exit(doctest.testmod().failed)