nodejs20/0003-icustrip.py-fix-use-of-string-and-byte-objects.patch

83 lines
3.2 KiB
Diff
Raw Normal View History

From fa4382c4b48ec34ed3259334f2e0f8d2706ffcf9 Mon Sep 17 00:00:00 2001
From: Jonathan MERCIER <jmercier@cng.fr>
Date: Tue, 17 Mar 2020 21:18:37 -0400
Subject: [PATCH 3/3] icustrip.py: fix use of string and byte objects
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
---
tools/icu/icutrim.py | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/tools/icu/icutrim.py b/tools/icu/icutrim.py
index 25bd99d9cb260da00de9647f9b060790b48af8b2..f857e73bbce298048e407ddbef87f5bc4ac5307a 100755
--- a/tools/icu/icutrim.py
+++ b/tools/icu/icutrim.py
@@ -11,10 +11,11 @@
# Usage:
# Use "-h" to get help options.
from __future__ import print_function
+import io
import json
import optparse
import os
import re
import shutil
@@ -157,13 +158,12 @@ def runcmd(tool, cmd, doContinue=False):
print("FAILED: %s" % cmd)
sys.exit(1)
return rc
## STEP 0 - read in json config
-fi= open(options.filterfile, "rb")
-config=json.load(fi)
-fi.close()
+with io.open(options.filterfile, encoding='utf-8') as fi:
+ config = json.load(fi)
if options.locales:
config["variables"] = config.get("variables", {})
config["variables"]["locales"] = config["variables"].get("locales", {})
config["variables"]["locales"]["only"] = options.locales.split(',')
@@ -283,14 +283,13 @@ for i in range(len(items)):
print("procesing %s" % (tree))
trees[tree] = { "extension": ".res", "treeprefix": treeprefix, "hasIndex": True }
# read in the resource list for the tree
treelistfile = os.path.join(options.tmpdir,"%s.lst" % tree)
runcmd("iculslocs", "-i %s -N %s -T %s -l > %s" % (outfile, dataname, tree, treelistfile))
- fi = open(treelistfile, 'rb')
- treeitems = fi.readlines()
- trees[tree]["locs"] = [treeitems[i].strip() for i in range(len(treeitems))]
- fi.close()
+ with io.open(treelistfile, 'r', encoding='utf-8') as fi:
+ treeitems = fi.readlines()
+ trees[tree]["locs"] = [line.strip() for line in treeitems]
if tree not in config.get("trees", {}):
print(" Warning: filter file %s does not mention trees.%s - will be kept as-is" % (options.filterfile, tree))
else:
queueForRemoval(tree)
@@ -315,16 +314,16 @@ def removeList(count=0):
print("## Damage control, trying to parse stderr from icupkg..")
fi = open(hackerrfile, 'rb')
erritems = fi.readlines()
fi.close()
#Item zone/zh_Hant_TW.res depends on missing item zone/zh_Hant.res
- pat = re.compile("""^Item ([^ ]+) depends on missing item ([^ ]+).*""")
+ pat = re.compile(bytes(r"^Item ([^ ]+) depends on missing item ([^ ]+).*", 'utf-8'))
for i in range(len(erritems)):
line = erritems[i].strip()
m = pat.match(line)
if m:
- toDelete = m.group(1)
+ toDelete = m.group(1).decode("utf-8")
if(options.verbose > 5):
print("<< %s added to delete" % toDelete)
remove.add(toDelete)
else:
print("ERROR: could not match errline: %s" % line)
--
2.25.1