[pypy-commit] pypy kill-multimethod: Kill pypy.objspace.std.stdtypedef and move TypeCache to pypy.objspace.std.typeobject.

Manuel Jacob noreply at buildbot.pypy.org
Wed Feb 26 05:21:17 CET 2014


Author: Manuel Jacob
Branch: kill-multimethod
Changeset: r69451:750998b0ec09
Date: 2014-02-26 04:52 +0100
http://bitbucket.org/pypy/pypy/changeset/750998b0ec09/

Log:	Kill pypy.objspace.std.stdtypedef and move TypeCache to
	pypy.objspace.std.typeobject.

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
@@ -3,7 +3,7 @@
 from pypy.interpreter.baseobjspace import ObjSpace, W_Root
 from pypy.interpreter.error import OperationError, oefmt
 from pypy.interpreter.typedef import get_unique_interplevel_subclass
-from pypy.objspace.std import stdtypedef, frame, transparent, callmethod
+from pypy.objspace.std import frame, transparent, callmethod
 from pypy.objspace.descroperation import DescrOperation, raiseattrerror
 from rpython.rlib.objectmodel import instantiate, specialize, is_annotation_constant
 from rpython.rlib.debug import make_sure_not_resized
@@ -28,7 +28,7 @@
 from pypy.objspace.std.setobject import W_SetObject, W_FrozensetObject
 from pypy.objspace.std.sliceobject import W_SliceObject
 from pypy.objspace.std.tupleobject import W_AbstractTupleObject, W_TupleObject
-from pypy.objspace.std.typeobject import W_TypeObject
+from pypy.objspace.std.typeobject import W_TypeObject, TypeCache
 from pypy.objspace.std.unicodeobject import W_UnicodeObject, wrapunicode
 
 
@@ -118,10 +118,10 @@
         return self.gettypeobject(cls.typedef)
 
     def gettypeobject(self, typedef):
-        # stdtypedef.TypeCache maps each StdTypeDef instance to its
+        # typeobject.TypeCache maps a TypeDef instance to its
         # unique-for-this-space W_TypeObject instance
         assert typedef is not None
-        return self.fromcache(stdtypedef.TypeCache).getorbuild(typedef)
+        return self.fromcache(TypeCache).getorbuild(typedef)
 
     def wrap(self, x):
         "Wraps the Python value 'x' into one of the wrapper classes."
diff --git a/pypy/objspace/std/stdtypedef.py b/pypy/objspace/std/stdtypedef.py
deleted file mode 100644
--- a/pypy/objspace/std/stdtypedef.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from pypy.interpreter.baseobjspace import SpaceCache
-
-
-class TypeCache(SpaceCache):
-    def build(cache, typedef):
-        "NOT_RPYTHON: initialization-time only."
-        # build a W_TypeObject from this StdTypeDef
-        from pypy.objspace.std.typeobject import W_TypeObject
-        from pypy.objspace.std.objectobject import W_ObjectObject
-
-        space = cache.space
-        w = space.wrap
-        rawdict = typedef.rawdict
-        lazyloaders = {}
-
-        # compute the bases
-        if typedef is W_ObjectObject.typedef:
-            bases_w = []
-        else:
-            bases = typedef.bases or [W_ObjectObject.typedef]
-            bases_w = [space.gettypeobject(base) for base in bases]
-
-        # wrap everything
-        dict_w = {}
-        for descrname, descrvalue in rawdict.items():
-            dict_w[descrname] = w(descrvalue)
-
-        if typedef.applevel_subclasses_base is not None:
-            overridetypedef = typedef.applevel_subclasses_base.typedef
-        else:
-            overridetypedef = typedef
-        w_type = W_TypeObject(space, typedef.name, bases_w, dict_w,
-                              overridetypedef=overridetypedef)
-        if typedef is not overridetypedef:
-            w_type.w_doc = space.wrap(typedef.doc)
-        w_type.lazyloaders = lazyloaders
-        return w_type
-
-    def ready(self, w_type):
-        w_type.ready()
diff --git a/pypy/objspace/std/typeobject.py b/pypy/objspace/std/typeobject.py
--- a/pypy/objspace/std/typeobject.py
+++ b/pypy/objspace/std/typeobject.py
@@ -1,5 +1,5 @@
 from pypy.interpreter import gateway
-from pypy.interpreter.baseobjspace import W_Root
+from pypy.interpreter.baseobjspace import W_Root, SpaceCache
 from pypy.interpreter.error import oefmt, OperationError
 from pypy.interpreter.function import Function, StaticMethod
 from pypy.interpreter.typedef import weakref_descr, GetSetProperty,\
@@ -1203,3 +1203,39 @@
     names = [cls.getname(space) for cls in cycle]
     raise OperationError(space.w_TypeError, space.wrap(
         "cycle among base classes: " + ' < '.join(names)))
+
+
+class TypeCache(SpaceCache):
+    def build(self, typedef):
+        "NOT_RPYTHON: initialization-time only."
+        from pypy.objspace.std.objectobject import W_ObjectObject
+
+        space = self.space
+        rawdict = typedef.rawdict
+        lazyloaders = {}
+
+        # compute the bases
+        if typedef is W_ObjectObject.typedef:
+            bases_w = []
+        else:
+            bases = typedef.bases or [W_ObjectObject.typedef]
+            bases_w = [space.gettypeobject(base) for base in bases]
+
+        # wrap everything
+        dict_w = {}
+        for descrname, descrvalue in rawdict.items():
+            dict_w[descrname] = space.wrap(descrvalue)
+
+        if typedef.applevel_subclasses_base is not None:
+            overridetypedef = typedef.applevel_subclasses_base.typedef
+        else:
+            overridetypedef = typedef
+        w_type = W_TypeObject(space, typedef.name, bases_w, dict_w,
+                              overridetypedef=overridetypedef)
+        if typedef is not overridetypedef:
+            w_type.w_doc = space.wrap(typedef.doc)
+        w_type.lazyloaders = lazyloaders
+        return w_type
+
+    def ready(self, w_type):
+        w_type.ready()


More information about the pypy-commit mailing list