[pypy-commit] pypy py3k: adapt to string based api

pjenvey noreply at buildbot.pypy.org
Mon Feb 3 06:43:30 CET 2014


Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r69054:05d1dbaef6bd
Date: 2014-02-02 21:39 -0800
http://bitbucket.org/pypy/pypy/changeset/05d1dbaef6bd/

Log:	adapt to string based api

diff --git a/pypy/module/_csv/interp_reader.py b/pypy/module/_csv/interp_reader.py
--- a/pypy/module/_csv/interp_reader.py
+++ b/pypy/module/_csv/interp_reader.py
@@ -42,15 +42,8 @@
         space = self.space
         field = field_builder.build()
         if self.numeric_field:
-            from rpython.rlib.rstring import ParseStringError
-            from rpython.rlib.rfloat import string_to_float
             self.numeric_field = False
-            try:
-                ff = string_to_float(field)
-            except ParseStringError as e:
-                from pypy.objspace.std.inttype import wrap_parsestringerror
-                raise wrap_parsestringerror(space, e, space.wrap(field))
-            w_obj = space.wrap(ff)
+            w_obj = space.call_function(space.w_float, space.wrap(field))
         else:
             w_obj = space.wrap(field)
         self.fields_w.append(w_obj)
diff --git a/pypy/objspace/std/complextype.py b/pypy/objspace/std/complextype.py
--- a/pypy/objspace/std/complextype.py
+++ b/pypy/objspace/std/complextype.py
@@ -1,4 +1,3 @@
-from rpython.tool.sourcetools import with_unicode_literals
 from pypy.interpreter.gateway import interp2app, unwrap_spec, WrappedDefault
 from pypy.interpreter.error import OperationError, operationerrfmt
 from pypy.objspace.std.register_all import register_all
@@ -19,7 +18,6 @@
 
 register_all(vars(),globals())
 
- at with_unicode_literals
 def _split_complex(s):
     slen = len(s)
     if slen == 0:
diff --git a/pypy/objspace/std/inttype.py b/pypy/objspace/std/inttype.py
--- a/pypy/objspace/std/inttype.py
+++ b/pypy/objspace/std/inttype.py
@@ -94,8 +94,8 @@
     if isinstance(e, InvalidBaseError):
         w_msg = space.wrap(e.msg)
     else:
-        w_msg = space.wrap('%s: %s' % (e.msg,
-                                       space.str_w(space.repr(w_source))))
+        w_msg = space.wrap(u'%s: %s' % (unicode(e.msg),
+                                        space.unicode_w(space.repr(w_source))))
     return OperationError(space.w_ValueError, w_msg)
 
 ## @unwrap_spec(w_x = WrappedDefault(0))
diff --git a/pypy/objspace/std/longtype.py b/pypy/objspace/std/longtype.py
--- a/pypy/objspace/std/longtype.py
+++ b/pypy/objspace/std/longtype.py
@@ -67,8 +67,7 @@
             s = unicode_to_decimal_w(space, w_value)
         else:
             try:
-                strval = space.bufferstr_w(w_value)
-                s = strval.decode('latin-1')
+                s = space.bufferstr_w(w_value)
             except OperationError:
                 raise OperationError(space.w_TypeError,
                                      space.wrap("int() can't convert non-string "
@@ -86,7 +85,7 @@
 def string_to_w_long(space, w_longtype, w_source, string, base=10):
     try:
         bigint = rbigint.fromstr(string, base, ignore_l_suffix=True,
-                                 fname=u'int')
+                                 fname='int')
     except ParseStringError as e:
         from pypy.objspace.std.inttype import wrap_parsestringerror
         raise wrap_parsestringerror(space, e, w_source)
diff --git a/pypy/objspace/std/unicodeobject.py b/pypy/objspace/std/unicodeobject.py
--- a/pypy/objspace/std/unicodeobject.py
+++ b/pypy/objspace/std/unicodeobject.py
@@ -1144,9 +1144,7 @@
 #
 # In CPython3 the call to PyUnicode_EncodeDecimal has been replaced to a call
 # to PyUnicode_TransformDecimalToASCII, which is much simpler. Here, we do the
-# equivalent.
-#
-# Note that, differently than default, we return an *unicode* RPython string
+# equivalent plus the final step of encoding the result to utf-8.
 def unicode_to_decimal_w(space, w_unistr):
     if not isinstance(w_unistr, W_UnicodeObject):
         raise operationerrfmt(space.w_TypeError, "expected unicode, got '%T'",
@@ -1164,7 +1162,7 @@
             except KeyError:
                 pass
         result[i] = unichr(uchr)
-    return u''.join(result)
+    return unicodehelper.encode_utf8(space, u''.join(result))
 
 
 _repr_function, _ = make_unicode_escape_function(


More information about the pypy-commit mailing list