Author: Carl Friedrich Bolz <cfb...@gmx.de>
Branch: space-newtext
Changeset: r88733:7608447652cb
Date: 2016-11-29 10:51 +0100
http://bitbucket.org/pypy/pypy/changeset/7608447652cb/

Log:    remove wrap calls in the objspace implementation itself

diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -786,10 +786,12 @@
         return self.is_true(self.contains(w_container, w_item))
 
     def setitem_str(self, w_obj, key, w_value):
-        return self.setitem(w_obj, self.wrap(key), w_value)
+        # key is a "text" (ie str in python2 and unicode in python3)
+        return self.setitem(w_obj, self.newtext(key), w_value)
 
     def finditem_str(self, w_obj, key):
-        return self.finditem(w_obj, self.wrap(key))
+        # key is a "text" (ie str in python2 and unicode in python3)
+        return self.finditem(w_obj, self.newtext(key))
 
     def finditem(self, w_obj, w_key):
         try:
@@ -832,11 +834,12 @@
         return w_s1
 
     def new_interned_str(self, s):
+        # returns a "text" (ie str in python2 and unicode in python3)
         if not we_are_translated():
             assert type(s) is str
         w_s1 = self.interned_strings.get(s)
         if w_s1 is None:
-            w_s1 = self.wrap(s)
+            w_s1 = self.newbytes(s)
             self.interned_strings.set(s, w_s1)
         return w_s1
 
@@ -1174,7 +1177,7 @@
         return w_res
 
     def call_method(self, w_obj, methname, *arg_w):
-        w_meth = self.getattr(w_obj, self.wrap(methname))
+        w_meth = self.getattr(w_obj, self.newbytes(methname))
         return self.call_function(w_meth, *arg_w)
 
     def raise_key_error(self, w_key):
@@ -1183,7 +1186,7 @@
 
     def lookup(self, w_obj, name):
         w_type = self.type(w_obj)
-        w_mro = self.getattr(w_type, self.wrap("__mro__"))
+        w_mro = self.getattr(w_type, self.newbytes("__mro__"))
         for w_supertype in self.fixedview(w_mro):
             w_value = w_supertype.getdictvalue(self, name)
             if w_value is not None:
@@ -1204,7 +1207,7 @@
             if self.is_oldstyle_instance(w_obj):
                 # ugly old style class special treatment, but well ...
                 try:
-                    self.getattr(w_obj, self.wrap("__call__"))
+                    self.getattr(w_obj, self.newbytes("__call__"))
                     return self.w_True
                 except OperationError as e:
                     if not e.match(self, self.w_AttributeError):
@@ -1216,7 +1219,7 @@
 
     def issequence_w(self, w_obj):
         if self.is_oldstyle_instance(w_obj):
-            return (self.findattr(w_obj, self.wrap('__getitem__')) is not None)
+            return (self.findattr(w_obj, self.newbytes('__getitem__')) is not 
None)
         flag = self.type(w_obj).flag_map_or_seq
         if flag == 'M':
             return False
@@ -1227,7 +1230,7 @@
 
     def ismapping_w(self, w_obj):
         if self.is_oldstyle_instance(w_obj):
-            return (self.findattr(w_obj, self.wrap('__getitem__')) is not None)
+            return (self.findattr(w_obj, self.newbytes('__getitem__')) is not 
None)
         flag = self.type(w_obj).flag_map_or_seq
         if flag == 'M':
             return True
@@ -1305,15 +1308,15 @@
                                          hidden_applevel=hidden_applevel)
         if not isinstance(statement, PyCode):
             raise TypeError('space.exec_(): expected a string, code or PyCode 
object')
-        w_key = self.wrap('__builtins__')
+        w_key = self.newbytes('__builtins__')
         if not self.contains_w(w_globals, w_key):
-            self.setitem(w_globals, w_key, self.wrap(self.builtin))
+            self.setitem(w_globals, w_key, self.builtin)
         return statement.exec_code(self, w_globals, w_locals)
 
     @specialize.arg(2)
     def appexec(self, posargs_w, source):
         """ return value from executing given source at applevel.
-            EXPERIMENTAL. The source must look like
+            The source must look like
                '''(x, y):
                        do_stuff...
                        return result
@@ -1417,7 +1420,7 @@
                 raise
             if not w_exception:
                 # w_index should be a long object, but can't be sure of that
-                if self.is_true(self.lt(w_index, self.wrap(0))):
+                if self.is_true(self.lt(w_index, self.newint(0))):
                     return -sys.maxint-1
                 else:
                     return sys.maxint
@@ -1780,7 +1783,7 @@
         if (not self.isinstance_w(w_fd, self.w_int) and
             not self.isinstance_w(w_fd, self.w_long)):
             try:
-                w_fileno = self.getattr(w_fd, self.wrap("fileno"))
+                w_fileno = self.getattr(w_fd, self.newbytes("fileno"))
             except OperationError as e:
                 if e.match(self, self.w_AttributeError):
                     raise oefmt(self.w_TypeError,
@@ -1805,7 +1808,7 @@
         return fd
 
     def warn(self, w_msg, w_warningcls, stacklevel=2):
-        self.appexec([w_msg, w_warningcls, self.wrap(stacklevel)],
+        self.appexec([w_msg, w_warningcls, self.newint(stacklevel)],
                      """(msg, warningcls, stacklevel):
             import _warnings
             _warnings.warn(msg, warningcls, stacklevel=stacklevel)
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
@@ -536,7 +536,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.wrap('indices'))
+        w_indices = self.getattr(w_slice, self.newbytes('indices'))
         w_tup = self.call_function(w_indices, w_length)
         l_w = self.unpackiterable(w_tup)
         if not len(l_w) == 3:
@@ -629,7 +629,7 @@
                 not w_obj.user_overridden_class):
             w_obj.setitem_str(key, w_value)
         else:
-            self.setitem(w_obj, self.wrap(key), w_value)
+            self.setitem(w_obj, self.newtext(key), w_value)
 
     def getindex_w(self, w_obj, w_exception, objdescr=None):
         if type(w_obj) is W_IntObject:
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to