1313
1414from __future__ import print_function
1515
16+ import io
1617import json
1718import optparse
1819import os
@@ -159,9 +160,8 @@ def runcmd(tool, cmd, doContinue=False):
159160 return rc
160161
161162## STEP 0 - read in json config
162- fi = open (options .filterfile , "rb" )
163- config = json .load (fi )
164- fi .close ()
163+ with io .open (options .filterfile , encoding = 'utf-8' ) as fi :
164+ config = json .load (fi )
165165
166166if options .locales :
167167 config ["variables" ] = config .get ("variables" , {})
@@ -285,10 +285,9 @@ def addTreeByType(tree, mytree):
285285 # read in the resource list for the tree
286286 treelistfile = os .path .join (options .tmpdir ,"%s.lst" % tree )
287287 runcmd ("iculslocs" , "-i %s -N %s -T %s -l > %s" % (outfile , dataname , tree , treelistfile ))
288- fi = open (treelistfile , 'rb' )
289- treeitems = fi .readlines ()
290- trees [tree ]["locs" ] = [treeitems [i ].strip () for i in range (len (treeitems ))]
291- fi .close ()
288+ with io .open (treelistfile , 'r' , encoding = 'utf-8' ) as fi :
289+ treeitems = fi .readlines ()
290+ trees [tree ]["locs" ] = [line .strip () for line in treeitems ]
292291 if tree not in config .get ("trees" , {}):
293292 print (" Warning: filter file %s does not mention trees.%s - will be kept as-is" % (options .filterfile , tree ))
294293 else :
@@ -317,12 +316,12 @@ def removeList(count=0):
317316 erritems = fi .readlines ()
318317 fi .close ()
319318 #Item zone/zh_Hant_TW.res depends on missing item zone/zh_Hant.res
320- pat = re .compile (""" ^Item ([^ ]+) depends on missing item ([^ ]+).*""" )
319+ pat = re .compile (bytes ( r" ^Item ([^ ]+) depends on missing item ([^ ]+).*", 'utf-8' ) )
321320 for i in range (len (erritems )):
322321 line = erritems [i ].strip ()
323322 m = pat .match (line )
324323 if m :
325- toDelete = m .group (1 )
324+ toDelete = m .group (1 ). decode ( "utf-8" )
326325 if (options .verbose > 5 ):
327326 print ("<< %s added to delete" % toDelete )
328327 remove .add (toDelete )
0 commit comments