[pypy-commit] pypy py3k: some quick fixes

pjenvey noreply at buildbot.pypy.org
Wed Feb 13 21:25:18 CET 2013


Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r61187:bd87e595d506
Date: 2013-02-13 12:21 -0800
http://bitbucket.org/pypy/pypy/changeset/bd87e595d506/

Log:	some quick fixes

diff --git a/lib_pypy/_ctypes/array.py b/lib_pypy/_ctypes/array.py
--- a/lib_pypy/_ctypes/array.py
+++ b/lib_pypy/_ctypes/array.py
@@ -23,7 +23,7 @@
                     for i in range(len(val)):
                         self[i] = val[i]
                     if len(val) < self._length_:
-                        self[len(val)] = '\x00'
+                        self[len(val)] = b'\x00'
                 res.value = property(getvalue, setvalue)
 
                 def getraw(self):
@@ -89,12 +89,13 @@
         # or function argument...
         from ctypes import c_char, c_wchar
         if issubclass(self._type_, (c_char, c_wchar)):
-            if isinstance(value, basestring):
+             # XXX: this should maybe be stricer for py3 (c_char disallowing str?)
+            if isinstance(value, (bytes, str)):
                 if len(value) > self._length_:
                     raise ValueError("Invalid length")
                 value = self(*value)
             elif not isinstance(value, self):
-                raise TypeError("expected string or Unicode object, %s found"
+                raise TypeError("expected string, %s found"
                                 % (value.__class__.__name__,))
         else:
             if isinstance(value, tuple):
diff --git a/lib_pypy/_ctypes/basics.py b/lib_pypy/_ctypes/basics.py
--- a/lib_pypy/_ctypes/basics.py
+++ b/lib_pypy/_ctypes/basics.py
@@ -137,7 +137,7 @@
             return self.value
 
     def __buffer__(self):
-        return buffer(self._buffer)
+        return self._buffer.__buffer__()
 
     def _get_b_base(self):
         try:
diff --git a/lib_pypy/_ctypes/function.py b/lib_pypy/_ctypes/function.py
--- a/lib_pypy/_ctypes/function.py
+++ b/lib_pypy/_ctypes/function.py
@@ -307,7 +307,8 @@
             except:
                 exc_info = sys.exc_info()
                 traceback.print_tb(exc_info[2], file=sys.stderr)
-                print >>sys.stderr, "%s: %s" % (exc_info[0].__name__, exc_info[1])
+                print("%s: %s" % (exc_info[0].__name__, exc_info[1]),
+                      file=sys.stderr)
                 return 0
             if self._restype_ is not None:
                 return res
diff --git a/lib_pypy/_ctypes/primitive.py b/lib_pypy/_ctypes/primitive.py
--- a/lib_pypy/_ctypes/primitive.py
+++ b/lib_pypy/_ctypes/primitive.py
@@ -184,7 +184,7 @@
 
         elif tp == 'u':
             def _setvalue(self, val):
-                if isinstance(val, str):
+                if isinstance(val, bytes):
                     val = val.decode(ConvMode.encoding, ConvMode.errors)
                 # possible if we use 'ignore'
                 if val:
@@ -195,7 +195,7 @@
 
         elif tp == 'c':
             def _setvalue(self, val):
-                if isinstance(val, unicode):
+                if isinstance(val, str):
                     val = val.encode(ConvMode.encoding, ConvMode.errors)
                 if val:
                     self._buffer[0] = val


More information about the pypy-commit mailing list