[HarfBuzz] harfbuzz: Branch 'master' - 2 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Mon Apr 6 14:42:07 PDT 2015


 test/shaping/hb_test_tools.py |   44 +++++++++++++++++++++++-------------------
 1 file changed, 25 insertions(+), 19 deletions(-)

New commits:
commit bfcddd32a674dd19fca1bf521e95466a0eec5179
Merge: ce01ad7 363ceec
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Apr 6 14:41:32 2015 -0700

    Merge pull request #93 from ebraminio/archpy3
    
    Make hb_test_tools.py compatible with python 3

commit 363ceec3fb0c9566db5a59da31e508f69dea1e92
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Mon Mar 30 03:27:14 2015 +0430

    Make hb_test_tools.py compatible with python 3
    
    On ArchLinux, /usr/bin/python is linked to python 3 so
    HarfBuzz `make check` is broken there.
    
    This makes hb_test_tools.py compatible with python 3 while
    no breaking it on python 2.

diff --git a/test/shaping/hb_test_tools.py b/test/shaping/hb_test_tools.py
index a370e5e..59b69cb 100644
--- a/test/shaping/hb_test_tools.py
+++ b/test/shaping/hb_test_tools.py
@@ -1,11 +1,15 @@
 #!/usr/bin/python
 
+from __future__ import print_function
 import sys, os, re, difflib, unicodedata, errno, cgi
 from itertools import *
 
 diff_symbols = "-+=*&^%$#@!~/"
 diff_colors = ['red', 'green', 'blue']
 
+if sys.version_info[0] >= 3:
+	unichr = chr
+
 class ColorFormatter:
 
 	class Null:
@@ -142,7 +146,7 @@ class ZipDiffer:
 						sys.stdout.writelines ([symbols[i], l])
 		except IOError as e:
 			if e.errno != errno.EPIPE:
-				print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
+				print ("%s: %s: %s" % (sys.argv[0], e.filename, e.strerror), file=sys.stderr)
 				sys.exit (1)
 
 
@@ -215,7 +219,7 @@ class DiffSinks:
 			else:
 				failed += 1
 		total = passed + failed
-		print "%d out of %d tests passed.  %d failed (%g%%)" % (passed, total, failed, 100. * failed / total)
+		print ("%d out of %d tests passed.  %d failed (%g%%)" % (passed, total, failed, 100. * failed / total))
 
 	@staticmethod
 	def print_ngrams (f, ns=(1,2,3)):
@@ -240,7 +244,7 @@ class DiffSinks:
 		del importantgrams
 
 		for ngram, stats in allgrams.iteritems ():
-			print "zscore: %9f failed: %6d passed: %6d ngram: <%s>" % (stats.zscore (allstats), stats.failed.count, stats.passed.count, ','.join ("U+%04X" % u for u in ngram))
+			print ("zscore: %9f failed: %6d passed: %6d ngram: <%s>" % (stats.zscore (allstats), stats.failed.count, stats.passed.count, ','.join ("U+%04X" % u for u in ngram)))
 
 
 
@@ -310,7 +314,7 @@ class FilterHelpers:
 	def filter_printer_function (filter_callback):
 		def printer (f):
 			for line in filter_callback (f):
-				print line
+				print (line)
 		return printer
 
 	@staticmethod
@@ -344,7 +348,7 @@ class UtilMains:
 	def process_multiple_files (callback, mnemonic = "FILE"):
 
 		if "--help" in sys.argv:
-			print "Usage: %s %s..." % (sys.argv[0], mnemonic)
+			print ("Usage: %s %s..." % (sys.argv[0], mnemonic))
 			sys.exit (1)
 
 		try:
@@ -353,14 +357,14 @@ class UtilMains:
 				callback (FileHelpers.open_file_or_stdin (s))
 		except IOError as e:
 			if e.errno != errno.EPIPE:
-				print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
+				print ("%s: %s: %s" % (sys.argv[0], e.filename, e.strerror), file=sys.stderr)
 				sys.exit (1)
 
 	@staticmethod
 	def process_multiple_args (callback, mnemonic):
 
 		if len (sys.argv) == 1 or "--help" in sys.argv:
-			print "Usage: %s %s..." % (sys.argv[0], mnemonic)
+			print ("Usage: %s %s..." % (sys.argv[0], mnemonic))
 			sys.exit (1)
 
 		try:
@@ -368,7 +372,7 @@ class UtilMains:
 				callback (s)
 		except IOError as e:
 			if e.errno != errno.EPIPE:
-				print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
+				print ("%s: %s: %s" % (sys.argv[0], e.filename, e.strerror), file=sys.stderr)
 				sys.exit (1)
 
 	@staticmethod
@@ -377,8 +381,8 @@ class UtilMains:
 					      concat_separator = False):
 
 		if "--help" in sys.argv:
-			print "Usage:\n  %s %s...\nor:\n  %s\n\nWhen called with no arguments, input is read from standard input." \
-			      % (sys.argv[0], mnemonic, sys.argv[0])
+			print ("Usage:\n  %s %s...\nor:\n  %s\n\nWhen called with no arguments, input is read from standard input." \
+			      % (sys.argv[0], mnemonic, sys.argv[0]))
 			sys.exit (1)
 
 		try:
@@ -389,15 +393,15 @@ class UtilMains:
 						break
 					if line[-1] == '\n':
 						line = line[:-1]
-					print callback (line)
+					print (callback (line))
 			else:
 				args = sys.argv[1:]
 				if concat_separator != False:
 					args = [concat_separator.join (args)]
-				print separator.join (callback (x) for x in (args))
+				print (separator.join (callback (x) for x in (args)))
 		except IOError as e:
 			if e.errno != errno.EPIPE:
-				print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
+				print ("%s: %s: %s" % (sys.argv[0], e.filename, e.strerror), file=sys.stderr)
 				sys.exit (1)
 
 
@@ -415,7 +419,9 @@ class Unicode:
 
 	@staticmethod
 	def encode (s):
-		return u''.join (unichr (x) for x in Unicode.parse (s)).encode ('utf-8')
+		s = u''.join (unichr (x) for x in Unicode.parse (s))
+		if sys.version_info[0] == 2: s = s.encode ('utf-8')
+		return s
 
 	shorthands = {
 		"ZERO WIDTH NON-JOINER": "ZWNJ",
@@ -471,7 +477,7 @@ class Manifest:
 
 		if not os.path.exists (s):
 			if strict:
-				print >> sys.stderr, "%s: %s does not exist" % (sys.argv[0], s)
+				print ("%s: %s does not exist" % (sys.argv[0], s), file=sys.stderr)
 				sys.exit (1)
 			return
 
@@ -487,7 +493,7 @@ class Manifest:
 						yield p
 			except IOError:
 				if strict:
-					print >> sys.stderr, "%s: %s does not exist" % (sys.argv[0], os.path.join (s, "MANIFEST"))
+					print ("%s: %s does not exist" % (sys.argv[0], os.path.join (s, "MANIFEST")), file=sys.stderr)
 					sys.exit (1)
 				return
 		else:
@@ -506,12 +512,12 @@ class Manifest:
 			dirnames.sort ()
 			filenames.sort ()
 			ms = os.path.join (dirpath, "MANIFEST")
-			print "  GEN    %s" % ms
+			print ("  GEN    %s" % ms)
 			m = open (ms, "w")
 			for f in filenames:
-				print >> m, f
+				print (f, file=m)
 			for f in dirnames:
-				print >> m, f
+				print (f, file=m)
 			for f in dirnames:
 				Manifest.update_recursive (os.path.join (dirpath, f))
 


More information about the HarfBuzz mailing list