Author: Matti Picus <[email protected]>
Branch: unicode-utf8-py3
Changeset: r94947:73ecf23722a4
Date: 2018-08-05 06:34 -0700
http://bitbucket.org/pypy/pypy/changeset/73ecf23722a4/

Log:    translation fixes, space.newtext() should not accept unicode

diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -83,7 +83,7 @@
             return space.utf8_w(space.getattr(self, space.newtext('__name__')))
         except OperationError as e:
             if e.match(space, space.w_TypeError) or e.match(space, 
space.w_AttributeError):
-                return u'?'
+                return '?'
             raise
 
     def getaddrstring(self, space):
diff --git a/pypy/interpreter/error.py b/pypy/interpreter/error.py
--- a/pypy/interpreter/error.py
+++ b/pypy/interpreter/error.py
@@ -520,7 +520,7 @@
                         if isinstance(value, unicode):
                             result = value.encode('utf8')
                         else:
-                            result = value.decode('utf8', errors='replace')
+                            result = value.decode('utf8', 'replace')
                     else:
                         if isinstance(value, unicode):
                             result = value
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -215,7 +215,7 @@
             e2.record_context(space, space.getexecutioncontext())
             raise e2
         else:
-            space.warn(space.newtext(u"generator '%s' raised StopIteration"
+            space.warn(space.newtext("generator '%s' raised StopIteration"
                                         % self.get_qualname()),
                        space.w_PendingDeprecationWarning)
 
diff --git a/pypy/interpreter/unicodehelper.py 
b/pypy/interpreter/unicodehelper.py
--- a/pypy/interpreter/unicodehelper.py
+++ b/pypy/interpreter/unicodehelper.py
@@ -1587,7 +1587,7 @@
                                   errorhandler=errorhandler)
     size = len(s)
     if size == 0:
-        return '', 0
+        return '', 0, 0
 
     pos = 0
     result = StringBuilder(size)
diff --git a/pypy/module/__builtin__/descriptor.py 
b/pypy/module/__builtin__/descriptor.py
--- a/pypy/module/__builtin__/descriptor.py
+++ b/pypy/module/__builtin__/descriptor.py
@@ -30,14 +30,14 @@
 
     def descr_repr(self, space):
         if self.w_objtype is not None:
-            objtype_name = u"<%s object>" % self.w_objtype.getname(space)
+            objtype_name = "<%s object>" % self.w_objtype.getname(space)
         else:
-            objtype_name = u'NULL'
+            objtype_name = 'NULL'
         if self.w_starttype is not None:
             starttype_name = self.w_starttype.getname(space)
         else:
-            starttype_name = u'NULL'
-        return space.newtext(u"<super: <class '%s'>, %s>" % (
+            starttype_name = 'NULL'
+        return space.newtext("<super: <class '%s'>, %s>" % (
             starttype_name, objtype_name))
 
     def get(self, space, w_obj, w_type=None):
diff --git a/pypy/module/_codecs/locale.py b/pypy/module/_codecs/locale.py
--- a/pypy/module/_codecs/locale.py
+++ b/pypy/module/_codecs/locale.py
@@ -57,7 +57,7 @@
                 if errorpos == -1:
                     raise MemoryError
                 errmsg = _errmsg("pypy_wchar2char")
-                errorhandler('strict', 'filesystemencoding', errmsg, u,
+                errorhandler('strict', 'filesystemencoding', errmsg, 
u.encode('utf8'),
                              errorpos, errorpos + 1)
             return rffi.charp2str(sbuf)
         finally:
diff --git a/pypy/module/cpyext/unicodeobject.py 
b/pypy/module/cpyext/unicodeobject.py
--- a/pypy/module/cpyext/unicodeobject.py
+++ b/pypy/module/cpyext/unicodeobject.py
@@ -85,7 +85,7 @@
     s = rffi.wcharpsize2unicode(get_wbuffer(py_obj), get_wsize(py_obj))
     w_type = from_ref(space, rffi.cast(PyObject, py_obj.c_ob_type))
     w_obj = space.allocate_instance(unicodeobject.W_UnicodeObject, w_type)
-    w_obj.__init__(s)
+    w_obj.__init__(s, len(s))
     track_reference(space, py_obj, w_obj)
     return w_obj
 
diff --git a/pypy/objspace/std/objspace.py b/pypy/objspace/std/objspace.py
--- a/pypy/objspace/std/objspace.py
+++ b/pypy/objspace/std/objspace.py
@@ -381,8 +381,9 @@
 
     @specialize.argtype(1)
     def newtext(self, s):
-        if isinstance(s, unicode):
-            s, lgt = s.encode('utf8'), len(s)
+        assert not isinstance(s, unicode)
+        #if isinstance(s, unicode):
+            #s, lgt = s.encode('utf8'), len(s)
         elif isinstance(s, str):
             s, lgt, codepoints = decode_utf8sp(self, s)
         elif isinstance(s, tuple):
@@ -391,6 +392,7 @@
         else:
             # XXX what is s ?
             lgt = rutf8.check_utf8(s, True)
+        assert isinstance(s, str)
         return W_UnicodeObject(s, lgt)
 
     def newtext_or_none(self, s):
@@ -399,6 +401,7 @@
         return self.newtext(s)
 
     def newutf8(self, utf8s, length):
+        assert length >= 0
         assert isinstance(utf8s, str)
         return W_UnicodeObject(utf8s, length)
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to