1414
1515import argparse
1616import os
17- import pprint
1817import sys
1918from typing import List
2019
2120from fontTools .ttLib import TTFont # type: ignore
2221
2322from dehinter import __version__
24- from dehinter .font import (
25- has_cvar_table ,
26- has_cvt_table ,
27- has_fpgm_table ,
28- has_hdmx_table ,
29- has_ltsh_table ,
30- has_prep_table ,
31- has_ttfa_table ,
32- has_vdmx_table ,
33- is_truetype_font ,
34- is_variable_font ,
35- remove_cvar_table ,
36- remove_cvt_table ,
37- remove_fpgm_table ,
38- remove_glyf_instructions ,
39- remove_hdmx_table ,
40- remove_ltsh_table ,
41- remove_prep_table ,
42- remove_ttfa_table ,
43- remove_vdmx_table ,
44- update_gasp_table ,
45- update_head_table_flags ,
46- update_maxp_table ,
47- )
23+ from dehinter .font import (dehint ,
24+ is_truetype_font )
4825from dehinter .paths import filepath_exists , get_default_out_path
4926from dehinter .system import get_filesize
5027
@@ -54,9 +31,6 @@ def main() -> None: # pragma: no cover
5431
5532
5633def run (argv : List [str ]) -> None :
57- # instantiate pretty printer
58- pp = pprint .PrettyPrinter (indent = 4 )
59-
6034 # ===========================================================
6135 # argparse command line argument definitions
6236 # ===========================================================
@@ -132,111 +106,20 @@ def run(argv: List[str]) -> None:
132106 )
133107 sys .exit (1 )
134108
135- if is_variable_font (tt ) and not args .keep_cvar :
136- if has_cvar_table (tt ):
137- remove_cvar_table (tt )
138- if not has_cvar_table (tt ):
139- print ("[-] Removed cvar table" )
140- else : # pragma: no cover
141- sys .stderr .write (
142- f"[!] Error: failed to remove cvar table from font{ os .linesep } "
143- )
144-
145- if not args .keep_cvt :
146- if has_cvt_table (tt ):
147- remove_cvt_table (tt )
148- if not has_cvt_table (tt ):
149- print ("[-] Removed cvt table" )
150- else : # pragma: no cover
151- sys .stderr .write (
152- f"[!] Error: failed to remove cvt table from font{ os .linesep } "
153- )
154-
155- if not args .keep_fpgm :
156- if has_fpgm_table (tt ):
157- remove_fpgm_table (tt )
158- if not has_fpgm_table (tt ):
159- print ("[-] Removed fpgm table" )
160- else : # pragma: no cover
161- sys .stderr .write (
162- f"[!] Error: failed to remove fpgm table from font{ os .linesep } "
163- )
164-
165- if not args .keep_hdmx :
166- if has_hdmx_table (tt ):
167- remove_hdmx_table (tt )
168- if not has_hdmx_table (tt ):
169- print ("[-] Removed hdmx table" )
170- else : # pragma: no cover
171- sys .stderr .write (
172- f"[!] Error: failed to remove hdmx table from font{ os .linesep } "
173- )
174-
175- if not args .keep_ltsh :
176- if has_ltsh_table (tt ):
177- remove_ltsh_table (tt )
178- if not has_ltsh_table (tt ):
179- print ("[-] Removed LTSH table" )
180- else : # pragma: no cover
181- sys .stderr .write (
182- f"[!] Error: failed to remove LTSH table from font{ os .linesep } "
183- )
184-
185- if not args .keep_prep :
186- if has_prep_table (tt ):
187- remove_prep_table (tt )
188- if not has_prep_table (tt ):
189- print ("[-] Removed prep table" )
190- else : # pragma: no cover
191- sys .stderr .write (
192- f"[!] Error: failed to remove prep table from font{ os .linesep } "
193- )
194-
195- if not args .keep_ttfa :
196- if has_ttfa_table (tt ):
197- remove_ttfa_table (tt )
198- if not has_ttfa_table (tt ):
199- print ("[-] Removed TTFA table" )
200- else : # pragma: no cover
201- sys .stderr .write (
202- f"[!] Error: failed to remove TTFA table from font{ os .linesep } "
203- )
204-
205- if not args .keep_vdmx :
206- if has_vdmx_table (tt ):
207- remove_vdmx_table (tt )
208- if not has_vdmx_table (tt ):
209- print ("[-] Removed VDMX table" )
210- else : # pragma: no cover
211- sys .stderr .write (
212- f"[!] Error: failed to remove VDMX table from font{ os .linesep } "
213- )
214-
215- # (2) Remove glyf table instruction set bytecode
216- if not args .keep_glyf :
217- number_glyfs_edited = remove_glyf_instructions (tt )
218- if number_glyfs_edited > 0 :
219- print (
220- f"[-] Removed glyf table instruction bytecode from "
221- f"{ number_glyfs_edited } glyphs"
222- )
223-
224- # (3) Edit gasp table
225- if not args .keep_gasp :
226- if update_gasp_table (tt ):
227- gasp_string = pp .pformat (tt ["gasp" ].__dict__ )
228- print (f"[Δ] New gasp table values:{ os .linesep } { gasp_string } " )
229-
230- # (4) Edit maxp table
231- if not args .keep_maxp :
232- if update_maxp_table (tt ):
233- maxp_string = pp .pformat (tt ["maxp" ].__dict__ )
234- print (f"[Δ] New maxp table values:{ os .linesep } { maxp_string } " )
235-
236- # (5) Edit head table flags to clear bit 4
237- if not args .keep_head :
238- if update_head_table_flags (tt ):
239- print ("[Δ] Cleared bit 4 in head table flags" )
109+ dehint (tt ,
110+ keep_cvar = args .keep_cvar ,
111+ keep_cvt = args .keep_cvt ,
112+ keep_fpgm = args .keep_fpgm ,
113+ keep_gasp = args .keep_gasp ,
114+ keep_glyf = args .keep_glyf ,
115+ keep_hdmx = args .keep_hdmx ,
116+ keep_head = args .keep_head ,
117+ keep_ltsh = args .keep_ltsh ,
118+ keep_maxp = args .keep_maxp ,
119+ keep_prep = args .keep_prep ,
120+ keep_ttfa = args .keep_ttfa ,
121+ keep_vdmx = args .keep_vdmx ,
122+ verbose = True )
240123
241124 # File write
242125 # ----------
0 commit comments