Author: Armin Rigo <[email protected]>
Branch: py3.5-newtext
Changeset: r90143:b1f56f360399
Date: 2017-02-15 10:01 +0100
http://bitbucket.org/pypy/pypy/changeset/b1f56f360399/
Log: hg merge 67d4325b8871 (but broken)
diff --git a/pypy/interpreter/generator.py b/pypy/interpreter/generator.py
--- a/pypy/interpreter/generator.py
+++ b/pypy/interpreter/generator.py
@@ -209,15 +209,15 @@
consts.CO_COROUTINE |
consts.CO_ITERABLE_COROUTINE):
e2 = OperationError(space.w_RuntimeError,
- space.wrap("%s raised StopIteration" %
- self.KIND))
+ space.newtext("%s raised StopIteration" %
+ self.KIND))
e2.chain_exceptions(space, e)
e2.set_cause(space, e.get_w_value(space))
e2.record_context(space, space.getexecutioncontext())
raise e2
else:
- space.warn(space.wrap(u"generator '%s' raised StopIteration"
- % self.get_qualname()),
+ space.warn(space.newunicode(u"generator '%s' raised StopIteration"
+ % self.get_qualname()),
space.w_PendingDeprecationWarning)
def descr_throw(self, w_type, w_val=None, w_tb=None):
@@ -251,7 +251,7 @@
if tb is None:
tb = space.getattr(operr.get_w_value(space),
- space.wrap('__traceback__'))
+ space.newtext('__traceback__'))
if not space.is_w(tb, space.w_None):
operr.set_traceback(tb)
return self.send_error(operr)
@@ -297,7 +297,7 @@
return space.w_None
def descr__name__(self, space):
- return space.wrap(self.get_name().decode('utf-8'))
+ return space.newtext(self.get_name())
def descr_set__name__(self, space, w_name):
if space.isinstance_w(w_name, space.w_unicode):
@@ -307,7 +307,7 @@
"__name__ must be set to a string object")
def descr__qualname__(self, space):
- return space.wrap(self.get_qualname())
+ return space.newunicode(self.get_qualname())
def descr_set__qualname__(self, space, w_name):
try:
@@ -343,7 +343,7 @@
def descr__iter__(self):
"""Implement iter(self)."""
- return self.space.wrap(self)
+ return self
def descr_next(self):
"""Implement next(self)."""
@@ -390,7 +390,7 @@
KIND = "coroutine"
def descr__await__(self, space):
- return space.wrap(CoroutineWrapper(self))
+ return CoroutineWrapper(self)
def _finalize_(self):
# If coroutine was never awaited on issue a RuntimeWarning.
@@ -399,7 +399,7 @@
self.frame.last_instr == -1:
space = self.space
msg = u"coroutine '%s' was never awaited" % self.get_qualname()
- space.warn(space.wrap(msg), space.w_RuntimeWarning)
+ space.warn(space.newunicode(msg), space.w_RuntimeWarning)
GeneratorOrCoroutine._finalize_(self)
@@ -410,7 +410,7 @@
self.coroutine = coroutine
def descr__iter__(self, space):
- return space.wrap(self)
+ return self
def descr__next__(self, space):
return self.coroutine.send_ex(space.w_None)
@@ -436,10 +436,10 @@
self.w_aiter = w_aiter
def descr__await__(self, space):
- return space.wrap(self)
+ return self
def descr__iter__(self, space):
- return space.wrap(self)
+ return self
def descr__next__(self, space):
raise OperationError(space.w_StopIteration, self.w_aiter)
@@ -457,7 +457,7 @@
w_yf.descr_close()
else:
try:
- w_close = space.getattr(w_yf, space.wrap("close"))
+ w_close = space.getattr(w_yf, space.newtext("close"))
except OperationError as e:
if not e.match(space, space.w_AttributeError):
# aaaaaaaah but that's what CPython does too
@@ -470,7 +470,7 @@
if isinstance(w_inputvalue_or_err, SApplicationException):
operr = w_inputvalue_or_err.operr
try:
- w_meth = space.getattr(w_yf, space.wrap("throw"))
+ w_meth = space.getattr(w_yf, space.newtext("throw"))
except OperationError as e:
if not e.match(space, space.w_AttributeError):
raise
@@ -481,7 +481,7 @@
operr.normalize_exception(space)
w_exc = operr.w_type
w_val = operr.get_w_value(space)
- w_tb = space.wrap(operr.get_traceback())
+ w_tb = operr.get_w_traceback(space)
return space.call_function(w_meth, w_exc, w_val, w_tb)
else:
return space.call_method(w_yf, "send", w_inputvalue_or_err)
diff --git a/pypy/interpreter/test/test_argument.py
b/pypy/interpreter/test/test_argument.py
--- a/pypy/interpreter/test/test_argument.py
+++ b/pypy/interpreter/test/test_argument.py
@@ -99,6 +99,8 @@
def str_w(self, s):
return str(s)
+ def text_w(self, s):
+ return self.str_w(s)
def text_w(self, s):
return self.str_w(s)
diff --git a/pypy/module/_collections/interp_deque.py
b/pypy/module/_collections/interp_deque.py
--- a/pypy/module/_collections/interp_deque.py
+++ b/pypy/module/_collections/interp_deque.py
@@ -184,7 +184,7 @@
copy.maxlen = self.maxlen
copy.extend(self.iter())
copy.extend(deque.iter())
- return self.space.wrap(copy)
+ return copy
def iadd(self, w_iterable):
self.extend(w_iterable)
@@ -199,7 +199,7 @@
for _ in range(num):
copied.extend(self)
- return space.wrap(copied)
+ return copied
def rmul(self, w_int):
return self.mul(w_int)
@@ -208,10 +208,10 @@
space = self.space
num = space.int_w(w_int)
if self.len == 0 or num == 1:
- return space.wrap(self)
+ return self
if num <= 0:
self.clear()
- return space.wrap(self)
+ return self
# use a copy to extend self
copy = W_Deque(space)
copy.maxlen = self.maxlen
@@ -220,7 +220,7 @@
for _ in range(num - 1):
self.extend(copy)
- return space.wrap(self)
+ return self
def extendleft(self, w_iterable):
"Extend the left side of the deque with elements from the iterable"
@@ -369,7 +369,7 @@
if i < start:
continue
if space.eq_w(w_obj, w_x):
- return space.wrap(i)
+ return space.newint(i)
self.checklock(lock)
except OperationError as e:
if not e.match(space, space.w_StopIteration):
@@ -642,7 +642,7 @@
return w_x
def reduce(self):
- w_i = self.space.wrap(self.deque.len - self.counter)
+ w_i = self.space.newint(self.deque.len - self.counter)
return self.space.newtuple([self.space.gettypefor(W_DequeIter),
self.space.newtuple([self.deque, w_i])])
@@ -710,7 +710,7 @@
return w_x
def reduce(self):
- w_i = self.space.wrap(self.deque.len - self.counter)
+ w_i = self.space.newint(self.deque.len - self.counter)
return self.space.newtuple([self.space.gettypefor(W_DequeRevIter),
self.space.newtuple([self.deque, w_i])])
diff --git a/pypy/module/_socket/interp_socket.py
b/pypy/module/_socket/interp_socket.py
--- a/pypy/module/_socket/interp_socket.py
+++ b/pypy/module/_socket/interp_socket.py
@@ -180,7 +180,7 @@
# XXX Hack to seperate rpython and pypy
def ipaddr_from_object(space, w_sockaddr):
- host = space.str_w(space.getitem(w_sockaddr, space.newint(0)))
+ host = space.text_w(space.getitem(w_sockaddr, space.newint(0)))
addr = rsocket.makeipaddr(host)
fill_from_object(addr, space, w_sockaddr)
return addr
diff --git a/pypy/objspace/descroperation.py b/pypy/objspace/descroperation.py
--- a/pypy/objspace/descroperation.py
+++ b/pypy/objspace/descroperation.py
@@ -408,7 +408,7 @@
except OperationError as e:
if not e.match(space, space.w_StopIteration):
raise
- return space.wrap(count)
+ return space.newint(count)
if space.eq_w(w_next, w_item):
count += 1
@@ -424,7 +424,7 @@
raise oefmt(space.w_ValueError,
"sequence.index(x): x not in sequence")
if space.eq_w(w_next, w_item):
- return space.wrap(index)
+ return space.newint(index)
index += 1
def hash(space, w_obj):
@@ -483,7 +483,7 @@
return w_result
if space.isinstance_w(w_result, space.w_int):
tp = space.type(w_result).name
- space.warn(space.wrap(
+ space.warn(space.newtext(
"__index__ returned non-int (type %s). "
"The ability to return an instance of a strict subclass of int
"
"is deprecated, and may be removed in a future version of "
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
@@ -92,6 +92,8 @@
self.builtin_types[typedef.name] = w_type
setattr(self, 'w_' + typedef.name, w_type)
self._interplevel_classes[w_type] = cls
+ self.w_bytes = self.w_str
+ self.w_text = self.w_str # this is w_unicode on Py3
self.w_dict.flag_map_or_seq = 'M'
self.w_list.flag_map_or_seq = 'S'
self.w_tuple.flag_map_or_seq = 'S'
@@ -132,7 +134,6 @@
assert typedef is not None
return self.fromcache(TypeCache).getorbuild(typedef)
- @not_rpython # only for tests
def wrap(self, x):
""" Wraps the Python value 'x' into one of the wrapper classes. This
should only be used for tests, in real code you need to use the
@@ -153,7 +154,7 @@
try:
unicode_x = x.decode('ascii')
except UnicodeDecodeError:
- unicode_x = self._wrap_ascii_replace(x)
+ unicode_x = self._wrap_string_old(x)
return self.newunicode(unicode_x)
if isinstance(x, unicode):
return self.newunicode(x)
@@ -167,24 +168,13 @@
return self.newint(x)
return self._wrap_not_rpython(x)
- def _wrap_ascii_replace(self, x):
- # XXX should disappear soon?
- # poor man's x.decode('ascii', 'replace'), since it's not
- # supported by RPython
- if not we_are_translated():
- print 'WARNING: space.wrap() called on a non-ascii byte string:
%r' % x
- lst = []
- for ch in x:
- ch = ord(ch)
- if ch > 127:
- lst.append(u'\ufffd')
- else:
- lst.append(unichr(ch))
- unicode_x = u''.join(lst)
- return unicode_x
+ def _wrap_string_old(self, x):
+ # XXX should disappear soon
+ print 'WARNING: space.wrap() called on a non-ascii byte string: %r' % x
+ return self.newtext(x)
+ @not_rpython # only for tests
def _wrap_not_rpython(self, x):
- "NOT_RPYTHON"
# _____ this code is here to support testing only _____
# we might get there in non-translated versions if 'x' is
@@ -577,7 +567,7 @@
if isinstance(w_slice, W_SliceObject):
a, b, c = w_slice.indices3(self, self.int_w(w_length))
return (a, b, c)
- w_indices = self.getattr(w_slice, self.newbytes('indices'))
+ w_indices = self.getattr(w_slice, self.newtext('indices'))
w_tup = self.call_function(w_indices, w_length)
l_w = self.unpackiterable(w_tup)
if not len(l_w) == 3:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit