Py3 fixes
authorStefan Behnel <scoder@users.berlios.de>
Sun, 5 Jul 2009 14:12:48 +0000 (16:12 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Sun, 5 Jul 2009 14:12:48 +0000 (16:12 +0200)
Cython/Compiler/Scanning.py
Cython/Compiler/TreeFragment.py
Cython/Plex/Transitions.py

index 5644f18645726884ede772316b43b3742b5db417..9a8e674e47f74719e1b53e05caed7d43b74489bc 100644 (file)
@@ -65,7 +65,7 @@ def hash_source_file(path):
     # tabs by a single space.
     import re
     text = re.sub("[ \t]+", " ", text)
-    hash = new_md5(text).hexdigest()
+    hash = new_md5(text.encode("ASCII")).hexdigest()
     return hash
 
 def open_pickled_lexicon(expected_hash):
index 47e98b7f925ea76a252b1bb256b7f125c4a943ce..28f9f8d467ff8151a260f4f116d528d626208478 100644 (file)
@@ -3,7 +3,10 @@
 #
 
 import re
-from cStringIO import StringIO
+try:
+    from cStringIO import BytesIO # Py3 mangled by 2to3 ...
+except ImportError:
+    from cStringIO import StringIO as BytesIO # Py3 mangled by 2to3 ...
 from Scanning import PyrexScanner, StringSourceDescriptor
 from Symtab import BuiltinScope, ModuleScope
 import Symtab
@@ -54,7 +57,7 @@ def parse_from_strings(name, code, pxds={}, level=None, initial_pos=None):
     context = StringParseContext([], name)
     scope = context.find_module(module_name, pos = initial_pos, need_pxd = 0)
 
-    buf = StringIO(code.encode(encoding))
+    buf = BytesIO(code.encode(encoding))
 
     scanner = PyrexScanner(buf, code_source, source_encoding = encoding,
                      scope = scope, context = context, initial_pos = initial_pos)
index 6caff5edfb7a0f8d05dbf8046669a55ab1d515ac..add3b448700a1929da747a628be3996a0701c8f1 100644 (file)
@@ -131,7 +131,7 @@ class TransitionMap(object):
     # loop invariant: map[lo] <= code < map[hi] and hi - lo >= 2
     while hi - lo >= 4:
       # Find midpoint truncated to even index
-      mid = ((lo + hi) / 2) & ~1
+      mid = ((lo + hi) // 2) & ~1
       if code < map[mid]:
         hi = mid
       else: