[pypy-commit] pypy space-newtext: _collections, _file, _sha, bz2

cfbolz pypy.commits at gmail.com
Wed Nov 2 09:03:35 EDT 2016


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: space-newtext
Changeset: r88067:7ece5e8fb99c
Date: 2016-11-02 12:04 +0100
http://bitbucket.org/pypy/pypy/changeset/7ece5e8fb99c/

Log:	_collections, _file, _sha, bz2

diff --git a/pypy/module/__builtin__/operation.py b/pypy/module/__builtin__/operation.py
--- a/pypy/module/__builtin__/operation.py
+++ b/pypy/module/__builtin__/operation.py
@@ -20,7 +20,7 @@
         char = __builtin__.chr(space.int_w(w_ascii))
     except ValueError:  # chr(out-of-range)
         raise oefmt(space.w_ValueError, "character code not in range(256)")
-    return space.wrap(char)
+    return space.wrap(char) # YYY
 
 @unwrap_spec(code=int)
 def unichr(space, code):
diff --git a/pypy/module/_collections/__init__.py b/pypy/module/_collections/__init__.py
--- a/pypy/module/_collections/__init__.py
+++ b/pypy/module/_collections/__init__.py
@@ -21,5 +21,5 @@
         # been used...  otherwise, some code is not happy about seeing
         # this code object twice
         space = self.space
-        space.getattr(self, space.wrap('defaultdict'))  # force importing
-        space.delattr(self, space.wrap('__missing__'))
+        space.getattr(self, space.newtext('defaultdict'))  # force importing
+        space.delattr(self, space.newtext('__missing__'))
diff --git a/pypy/module/_collections/interp_defaultdict.py b/pypy/module/_collections/interp_defaultdict.py
--- a/pypy/module/_collections/interp_defaultdict.py
+++ b/pypy/module/_collections/interp_defaultdict.py
@@ -4,7 +4,7 @@
     # An interp-level version of this method.  This is mostly only
     # useful because it can be executed atomically in the presence of
     # threads.
-    w_default_factory = space.getattr(w_self, space.wrap('default_factory'))
+    w_default_factory = space.getattr(w_self, space.newtext('default_factory'))
     if space.is_w(w_default_factory, space.w_None):
         raise OperationError(space.w_KeyError, space.newtuple([w_key]))
     w_value = space.call_function(w_default_factory)
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
@@ -156,13 +156,13 @@
             if index >= BLOCKLEN:
                 block = block.rightlink
                 index = 0
-        return space.wrap(result)
+        return space.newint(result)
 
     def extend(self, w_iterable):
         "Extend the right side of the deque with elements from the iterable"
         # Handle case where id(deque) == id(iterable)
         space = self.space
-        if space.is_w(space.wrap(self), w_iterable):
+        if space.is_w(self, w_iterable):
             w_iterable = space.call_function(space.w_list, w_iterable)
         #
         w_iter = space.iter(w_iterable)
@@ -177,13 +177,13 @@
 
     def iadd(self, w_iterable):
         self.extend(w_iterable)
-        return self.space.wrap(self)
+        return self
 
     def extendleft(self, w_iterable):
         "Extend the left side of the deque with elements from the iterable"
         # Handle case where id(deque) == id(iterable)
         space = self.space
-        if space.is_w(space.wrap(self), w_iterable):
+        if space.is_w(self, w_iterable):
             w_iterable = space.call_function(space.w_list, w_iterable)
         #
         space = self.space
@@ -307,7 +307,7 @@
         return W_DequeRevIter(self)
 
     def length(self):
-        return self.space.wrap(self.len)
+        return self.space.newint(self.len)
 
     def repr(self):
         space = self.space
@@ -315,14 +315,14 @@
         w_currently_in_repr = ec._py_repr
         if w_currently_in_repr is None:
             w_currently_in_repr = ec._py_repr = space.newdict()
-        return dequerepr(space, w_currently_in_repr, space.wrap(self))
+        return dequerepr(space, w_currently_in_repr, self)
 
     @specialize.arg(2)
     def compare(self, w_other, op):
         space = self.space
         if not isinstance(w_other, W_Deque):
             return space.w_NotImplemented
-        return space.compare_by_iteration(space.wrap(self), w_other, op)
+        return space.compare_by_iteration(self, w_other, op)
 
     def lt(self, w_other):
         return self.compare(w_other, 'lt')
@@ -394,13 +394,13 @@
             return space.call_function(space.type(self), self)
         else:
             return space.call_function(space.type(self), self,
-                                       space.wrap(self.maxlen))
+                                       space.newint(self.maxlen))
 
     def reduce(self):
         "Return state information for pickling."
         space = self.space
         w_type = space.type(self)
-        w_dict = space.findattr(self, space.wrap('__dict__'))
+        w_dict = space.findattr(self, space.newtext('__dict__'))
         w_list = space.call_function(space.w_list, self)
         if w_dict is None:
             if self.maxlen == sys.maxint:
@@ -408,12 +408,12 @@
                     w_type, space.newtuple([w_list])]
             else:
                 result = [
-                    w_type, space.newtuple([w_list, space.wrap(self.maxlen)])]
+                    w_type, space.newtuple([w_list, space.newint(self.maxlen)])]
         else:
             if self.maxlen == sys.maxint:
                 w_len = space.w_None
             else:
-                w_len = space.wrap(self.maxlen)
+                w_len = space.newint(self.maxlen)
             result = [
                 w_type, space.newtuple([w_list, w_len]), w_dict]
         return space.newtuple(result)
@@ -422,7 +422,7 @@
         if self.maxlen == sys.maxint:
             return self.space.w_None
         else:
-            return self.space.wrap(self.maxlen)
+            return self.space.newint(self.maxlen)
 
 
 app = gateway.applevel("""
@@ -506,10 +506,10 @@
         check_nonneg(self.index)
 
     def iter(self):
-        return self.space.wrap(self)
+        return self
 
     def length(self):
-        return self.space.wrap(self.counter)
+        return self.space.newint(self.counter)
 
     def next(self):
         space = self.space
@@ -548,10 +548,10 @@
         check_nonneg(self.index)
 
     def iter(self):
-        return self.space.wrap(self)
+        return self
 
     def length(self):
-        return self.space.wrap(self.counter)
+        return self.space.newint(self.counter)
 
     def next(self):
         space = self.space
diff --git a/pypy/module/_file/interp_stream.py b/pypy/module/_file/interp_stream.py
--- a/pypy/module/_file/interp_stream.py
+++ b/pypy/module/_file/interp_stream.py
@@ -114,13 +114,13 @@
                 result = self.stream.%(name)s(%(args)s)
             except streamio.StreamError, e:
                 raise OperationError(space.w_ValueError,
-                                     space.wrap(e.message))
+                                     space.newtext(e.message))
             except OSError, e:
                 raise wrap_oserror_as_ioerror(space, e)
         finally:
             if acquired:
                 self.release_lock()
-        return space.wrap(result)
+        return space.wrap(result) # YYY
     %(name)s.unwrap_spec = [W_Stream, ObjSpace] + argtypes
     """ % locals()).compile() in globals()
 
diff --git a/pypy/module/_file/readinto.py b/pypy/module/_file/readinto.py
--- a/pypy/module/_file/readinto.py
+++ b/pypy/module/_file/readinto.py
@@ -79,4 +79,4 @@
                     raise OSError(err, "read error")
             keepalive_until_here(rwbuffer)
 
-    return self.space.wrap(target_pos)
+    return self.space.newint(target_pos)
diff --git a/pypy/module/_pypyjson/interp_decoder.py b/pypy/module/_pypyjson/interp_decoder.py
--- a/pypy/module/_pypyjson/interp_decoder.py
+++ b/pypy/module/_pypyjson/interp_decoder.py
@@ -142,14 +142,14 @@
             self.ll_chars[i+5] == 't' and
             self.ll_chars[i+6] == 'y'):
             self.pos = i+7
-            return self.space.wrap(rfloat.INFINITY * sign)
+            return self.space.newfloat(rfloat.INFINITY * sign)
         self._raise("Error when decoding Infinity at char %d", i)
 
     def decode_nan(self, i):
         if (self.ll_chars[i]   == 'a' and
             self.ll_chars[i+1] == 'N'):
             self.pos = i+2
-            return self.space.wrap(rfloat.NAN)
+            return self.space.newfloat(rfloat.NAN)
         self._raise("Error when decoding NaN at char %d", i)
 
     def decode_numeric(self, i):
@@ -168,7 +168,7 @@
             return self.decode_int_slow(start)
 
         self.pos = i
-        return self.space.wrap(intval)
+        return self.space.newint(intval)
 
     def decode_float(self, i):
         from rpython.rlib import rdtoa
@@ -176,7 +176,7 @@
         floatval = rdtoa.dg_strtod(start, self.end_ptr)
         diff = rffi.cast(rffi.LONG, self.end_ptr[0]) - rffi.cast(rffi.LONG, start)
         self.pos = i + diff
-        return self.space.wrap(floatval)
+        return self.space.newfloat(floatval)
 
     def decode_int_slow(self, i):
         start = i
@@ -186,7 +186,7 @@
             i += 1
         s = self.getslice(start, i)
         self.pos = i
-        return self.space.call_function(self.space.w_int, self.space.wrap(s))
+        return self.space.call_function(self.space.w_int, self.space.newtext(s))
 
     @always_inline
     def parse_integer(self, i):
@@ -306,7 +306,7 @@
                     content_unicode = strslice2unicode_latin1(self.s, start, i-1)
                 self.last_type = TYPE_STRING
                 self.pos = i
-                return self.space.wrap(content_unicode)
+                return self.space.newunicode(content_unicode)
             elif ch == '\\':
                 content_so_far = self.getslice(start, i-1)
                 self.pos = i-1
@@ -327,7 +327,7 @@
                 content_unicode = unicodehelper.decode_utf8(self.space, content_utf8)
                 self.last_type = TYPE_STRING
                 self.pos = i
-                return self.space.wrap(content_unicode)
+                return self.space.newunicode(content_unicode)
             elif ch == '\\':
                 i = self.decode_escape_sequence(i, builder)
             elif ch == '\0':
diff --git a/pypy/module/_sha/interp_sha.py b/pypy/module/_sha/interp_sha.py
--- a/pypy/module/_sha/interp_sha.py
+++ b/pypy/module/_sha/interp_sha.py
@@ -20,15 +20,15 @@
         self.update(string)
 
     def digest_w(self):
-        return self.space.wrap(self.digest())
+        return self.space.newbytes(self.digest())
 
     def hexdigest_w(self):
-        return self.space.wrap(self.hexdigest())
+        return self.space.newtext(self.hexdigest())
 
     def copy_w(self):
         clone = W_SHA(self.space)
         clone._copyfrom(self)
-        return self.space.wrap(clone)
+        return clone
 
 
 @unwrap_spec(initialdata='bufferstr')
diff --git a/pypy/module/bz2/interp_bz2.py b/pypy/module/bz2/interp_bz2.py
--- a/pypy/module/bz2/interp_bz2.py
+++ b/pypy/module/bz2/interp_bz2.py
@@ -277,9 +277,6 @@
             head = "closed"
         else:
             head = "open"
-        w_name = self.w_name
-        if w_name is None:
-            w_name = self.space.wrap('?')
         info = "%s bz2.BZ2File %s, mode '%s'" % (head, self.getdisplayname(),
                                                  self.mode)
         return self.getrepr(self.space, info)
@@ -287,7 +284,7 @@
 def descr_bz2file__new__(space, w_subtype, __args__):
     bz2file = space.allocate_instance(W_BZ2File, w_subtype)
     W_BZ2File.__init__(bz2file, space)
-    return space.wrap(bz2file)
+    return bz2file
 
 same_attributes_as_in_file = list(W_File._exposed_method_names)
 same_attributes_as_in_file.remove('__init__')
@@ -504,9 +501,8 @@
 @unwrap_spec(compresslevel=int)
 def descr_compressor__new__(space, w_subtype, compresslevel=9):
     x = space.allocate_instance(W_BZ2Compressor, w_subtype)
-    x = space.interp_w(W_BZ2Compressor, x)
     W_BZ2Compressor.__init__(x, space, compresslevel)
-    return space.wrap(x)
+    return x
 
 class W_BZ2Compressor(W_Root):
     """BZ2Compressor([compresslevel=9]) -> compressor object
@@ -614,9 +610,8 @@
 
 def descr_decompressor__new__(space, w_subtype):
     x = space.allocate_instance(W_BZ2Decompressor, w_subtype)
-    x = space.interp_w(W_BZ2Decompressor, x)
     W_BZ2Decompressor.__init__(x, space)
-    return space.wrap(x)
+    return x
 
 
 class W_BZ2Decompressor(W_Root):
@@ -750,7 +745,7 @@
 
                 res = out.make_result_string()
                 BZ2_bzCompressEnd(bzs)
-                return space.wrap(res)
+                return space.newbytes(res)
 
 @unwrap_spec(data='bufferstr')
 def decompress(space, data):
@@ -761,7 +756,7 @@
 
     in_bufsize = len(data)
     if in_bufsize == 0:
-        return space.wrap("")
+        return space.newbytes("")
 
     with lltype.scoped_alloc(bz_stream.TO, zero=True) as bzs:
         with rffi.scoped_nonmovingbuffer(data) as in_buf:
@@ -790,4 +785,4 @@
 
                 res = out.make_result_string()
                 BZ2_bzDecompressEnd(bzs)
-                return space.wrap(res)
+                return space.newbytes(res)


More information about the pypy-commit mailing list