1414'''
1515
1616import argparse
17+ import defcon
1718import itertools
18- import os
1919import time
2020
21+ from pathlib import Path
22+
2123
2224group_rtl = 'RTL_KERNING'
2325
@@ -357,12 +359,14 @@ def _sanityCheck(self):
357359 num_pairs_unprocessed = len (self .pairs_unprocessed )
358360
359361 if num_pairs_total != num_pairs_processed + num_pairs_unprocessed :
360- print ('Something went wrong...' )
361- print ('Kerning pairs provided: %s' % num_pairs_total )
362- print ('Kern entries generated: %s' % (
363- num_pairs_processed + num_pairs_unprocessed ))
364- print ('Pairs not processed: %s' % (
365- num_pairs_total - (num_pairs_processed + num_pairs_unprocessed )))
362+ num_entries = num_pairs_processed + num_pairs_unprocessed
363+ num_unprocessed = num_pairs_total - num_entries
364+ print (
365+ 'Something went wrong ...\n '
366+ f'Kerning pairs provided: { num_pairs_total } \n '
367+ f'Kern entries generated: { num_entries } \n '
368+ f'Pairs not processed: { num_unprocessed } \n '
369+ )
366370
367371 def _explode (self , leftGlyphList , rightGlyphList ):
368372 '''
@@ -662,8 +666,7 @@ def __init__(self, font, args=None):
662666
663667 fea_data = self ._make_fea_data (kp )
664668 self .header = self .make_header (args )
665- output_dir = os .path .abspath (os .path .dirname (self .f .path ))
666- output_path = os .path .join (output_dir , args .output_name )
669+ output_path = Path (self .f .path ).parent / args .output_name
667670 self .write_fea_data (fea_data , output_path )
668671
669672 def make_header (self , args ):
@@ -674,9 +677,9 @@ def make_header(self, args):
674677
675678 header = []
676679 if args .write_timestamp :
677- header .append ('# Created: %s' % time .ctime ())
678- header .append ('# PS Name: %s' % ps_name )
679- header .append ('# MinKern: +/- %s inclusive' % args .min_value )
680+ header .append (f '# Created: { time .ctime ()} ' )
681+ header .append (f '# PS Name: { ps_name } ' )
682+ header .append (f '# MinKern: +/- { args .min_value } inclusive' )
680683 return header
681684
682685 def _dict2pos (self , pair_value_dict , minimum = 0 , enum = False , rtl = False ):
@@ -687,14 +690,14 @@ def _dict2pos(self, pair_value_dict, minimum=0, enum=False, rtl=False):
687690
688691 data = []
689692 trimmed = 0
690- for pair , value in pair_value_dict .items ():
693+ for ( item_1 , item_2 ) , value in pair_value_dict .items ():
691694
692695 if rtl :
693696 value_str = '<{0} 0 {0} 0>' .format (value )
694697 else :
695698 value_str = str (value )
696699
697- posLine = 'pos %s %s;' % ( ' ' . join ( pair ), value_str )
700+ posLine = f 'pos { item_1 } { item_2 } { value_str } ;'
698701
699702 if enum :
700703 data .append ('enum ' + posLine )
@@ -735,7 +738,7 @@ def _build_st_output(self, st_list, comment, rtl=False):
735738
736739 st_output .append (
737740 self ._dict2pos (table , self .minKern , rtl = rtl ))
738- print ('%s subtables created' % self . num_subtables )
741+ print (f' { self . num_subtables } subtables created' )
739742 return st_output
740743
741744 def _make_fea_data (self , kp ):
@@ -869,10 +872,10 @@ def _make_fea_data(self, kp):
869872
870873 def write_fea_data (self , data , output_path ):
871874
872- print ('Saving %s file...' % os . path . basename ( output_path ) )
875+ print (f 'Saving { output_path . name } file...' )
873876
874877 if self .trimmedPairs > 0 :
875- print ('Trimmed pairs: %s' % self .trimmedPairs )
878+ print (f 'Trimmed pairs: { self .trimmedPairs } ' )
876879
877880 with open (output_path , 'w' ) as blob :
878881 blob .write ('\n ' .join (self .header ))
@@ -881,7 +884,7 @@ def write_fea_data(self, data, output_path):
881884 blob .write ('\n ' .join (data ))
882885 blob .write ('\n ' )
883886
884- print ('Output file written to %s' % output_path )
887+ print (f 'Output file written to { output_path } ' )
885888
886889
887890def get_args (args = None ):
@@ -946,10 +949,8 @@ def get_args(args=None):
946949
947950def main (test_args = None ):
948951 args = get_args (test_args )
949- f_path = os .path .normpath (args .input_file )
950- import defcon
951- if os .path .exists (f_path ):
952-
952+ f_path = Path (args .input_file )
953+ if f_path .exists :
953954 f = defcon .Font (f_path )
954955 run (f , args )
955956
0 commit comments