Browse Source

Python3 changes - part 1.

Bentley James Oakes 7 years ago
parent
commit
6ee917ab87

+ 5 - 1
bootstrap/bootstrap.py

@@ -99,6 +99,10 @@ def bootstrap():
             self.file_b = file_b
 
         def write(self, text, both=True):
+
+            if sys.version_info[0] > 2:
+                text = text.encode()
+
             self.file_a.write(text)
             if both:
                 self.file_b.write(text)
@@ -120,7 +124,7 @@ def bootstrap():
                     f.write("Dict (__hierarchy, \"%s\", %s)\n" % (primitive_class_name, primitive_class_name))
 
                     # Define all primitive functions
-                    for function, parameters in primitive_decls.iteritems():
+                    for function, parameters in list(primitive_decls.items()):
                         f.write("Node _func_signature_%s()\n" % function)
                         f.write("Node _func_params_%s()\n" % function)
                         f.write("Node _func_body_%s()\n" % function)

+ 5 - 5
interface/HUTN/hutn_compiler/model_visitor.py

@@ -115,11 +115,11 @@ class ModelVisitor(Visitor):
     def visit_model_attr_instance(self, tree):
         def constructors_compile(code):
             code_fragments = code.split("\n")
-	    code_fragments = [i for i in code_fragments if i.strip() != ""]
-	    code_fragments = [i.replace("    ", "\t") for i in code_fragments]
-	    initial_tabs = min([len(i) - len(i.lstrip("\t")) for i in code_fragments])
-	    code_fragments = self.includes + [i[initial_tabs:] for i in code_fragments]
-	    code = "\n".join(code_fragments)
+            code_fragments = [i for i in code_fragments if i.strip() != ""]
+            code_fragments = [i.replace("    ", "\t") for i in code_fragments]
+            initial_tabs = min([len(i) - len(i.lstrip("\t")) for i in code_fragments])
+            code_fragments = self.includes + [i[initial_tabs:] for i in code_fragments]
+            code = "\n".join(code_fragments)
             code += "\n"
 
             with open(".code.alc", 'w') as f:

+ 3 - 1
state/modelverse_state/main.py

@@ -4,13 +4,15 @@ import os
 import gzip
 import time
 
-import cPickle as pickle
+
 
 # Work around Python 2 where a 'big integer' automatically becomes a long
 if sys.version > '3': # pragma: no cover
+    import pickle as pickle
     integer_types = (int,)
     primitive_types = (int, float, str, bool)
 else: # pragma: no cover
+    import cPickle as pickle
     integer_types = (int, long)
     primitive_types = (int, long, float, str, bool, unicode)
 complex_primitives = frozenset(["if", "while", "assign", "call", "break", "continue", "return","resolve","access", "constant", "input", "output", "declare", "global", "none"])