From cf98cd387d5618b9f372260dc5e71ee0159202dd Mon Sep 17 00:00:00 2001
From: Dave Kuhlman <dkuhlman@davekuhlman.org>
Date: Thu, 25 Feb 2016 11:23:21 -0800
Subject: [PATCH] Encoding fix for Python 2/34

---
 generateDS.py       |  5 ++++-
 process_includes.py | 18 ++++++++++++------
 tests/test.py       |  5 +++--
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/generateDS.py b/generateDS.py
index c32c6b9..70755e7 100755
--- a/generateDS.py
+++ b/generateDS.py
@@ -6411,7 +6411,10 @@ def isNewState():
     state = reduce(
         operator.concat,
         (str(id(item)) for item in PostponedExtensions))
-    sum = hashlib.sha1(str(state)).hexdigest()
+    if sys.version_info.major == 2:
+        sum = hashlib.sha1(str(state)).hexdigest()
+    else:
+        sum = hashlib.sha1(str(state).encode()).hexdigest()
     if sum in LoopcheckOneperChecksums:
         return False
     LoopcheckOneperChecksums.add(sum)
diff --git a/process_includes.py b/process_includes.py
index 9b62eaf..ed91e2b 100755
--- a/process_includes.py
+++ b/process_includes.py
@@ -18,7 +18,9 @@ import os
 if sys.version_info.major == 2:
     import urllib2
 else:
-    import urllib.request, urllib.error, urllib.parse
+    import urllib.request
+    import urllib.error
+    import urllib.parse
 import copy
 from optparse import OptionParser, Values
 import itertools
@@ -238,7 +240,11 @@ def collect_inserts_aux(child, params, inserts, options):
     save_base_url = params.base_url
     string_content = resolve_ref(child, params, options)
     if string_content is not None:
-        root = etree.fromstring(string_content, base_url=params.base_url)
+        if sys.version_info.major == 2:
+            root = etree.fromstring(string_content, base_url=params.base_url)
+        else:
+            root = etree.fromstring(
+                string_content.encode(), base_url=params.base_url)
         roots.append(root)
         for child1 in root:
             if not isinstance(child1, etree._Comment):
@@ -281,10 +287,10 @@ def get_root_file_paths_aux(child, params, rootPaths):
 def make_file(outFileName, options):
     outFile = None
     if (not options.force) and os.path.exists(outFileName):
-        if sys.version_info.major == 2:
-            reply = raw_input('File %s exists.  Overwrite? (y/n): ' % outFileName)
-        else:
-            reply = input('File %s exists.  Overwrite? (y/n): ' % outFileName)
+        if sys.version_info.major == 3:
+            raw_input = input
+        reply = raw_input(
+            'File %s exists.  Overwrite? (y/n): ' % outFileName)
         if reply == 'y':
             outFile = open(outFileName, 'w')
     else:
diff --git a/tests/test.py b/tests/test.py
index 64df9a0..0f14e59 100755
--- a/tests/test.py
+++ b/tests/test.py
@@ -1,5 +1,6 @@
 #!/usr/bin/env python
 
+from __future__ import print_function
 import sys
 import os
 import subprocess
@@ -19,7 +20,7 @@ class GenTest(unittest.TestCase):
         return stdout, stderr
 
 ##     def setUp(self):
-##         print 'running setUp'
+##         print('running setUp')
 ##         cmd = (
 ##             'python generateDS.py --no-dates --no-versions -f '
 ##             '-o tests/out2_sup.py -s tests/out2_sub.py '
@@ -784,7 +785,7 @@ Example:
 
 
 def usage():
-    print USAGE_TEXT
+    print(USAGE_TEXT)
     sys.exit(-1)
 
 
-- 
GitLab