[pypy-svn] r4972 - in pypy/branch/src-newobjectmodel/pypy: interpreter module objspace/std

mwh at codespeak.net mwh at codespeak.net
Sat Jun 5 15:45:40 CEST 2004


Author: mwh
Date: Sat Jun  5 15:45:40 2004
New Revision: 4972

Modified:
   pypy/branch/src-newobjectmodel/pypy/interpreter/baseobjspace.py
   pypy/branch/src-newobjectmodel/pypy/module/__builtin__module.py
   pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py
Log:
add fromkeys()
this requires jiggering with how the builtins are built...


Modified: pypy/branch/src-newobjectmodel/pypy/interpreter/baseobjspace.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/interpreter/baseobjspace.py	(original)
+++ pypy/branch/src-newobjectmodel/pypy/interpreter/baseobjspace.py	Sat Jun  5 15:45:40 2004
@@ -23,11 +23,15 @@
         # sets all the internal descriptors 
         self.initialize()
 
-    def make_builtins(self):
+    def make_builtins(self, for_builtins):
         # initializing builtins may require creating a frame which in
         # turn already accesses space.w_builtins, provide a dummy one ...
         self.w_builtins = self.newdict([])
 
+        # insert stuff into the newly-made builtins
+        for key, w_value in for_builtins.items():
+            self.setitem(self.w_builtins, self.wrap(key), w_value)
+
         assert not hasattr(self, 'builtin')
         if not hasattr(self, 'sys'):
             self.make_sys()

Modified: pypy/branch/src-newobjectmodel/pypy/module/__builtin__module.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/module/__builtin__module.py	(original)
+++ pypy/branch/src-newobjectmodel/pypy/module/__builtin__module.py	Sat Jun  5 15:45:40 2004
@@ -537,6 +537,15 @@
             return self.f(klass, *args)
         return newfunc
 
+def _fromkeys(cls, seq, value=None):
+    r = cls()
+    for s in seq:
+        r[s] = value
+    return r
+
+dict.fromkeys = classmethod(_fromkeys)
+del _fromkeys
+
 
 # super is a modified version from Guido's tutorial
 #     http://www.python.org/2.2.3/descrintro.html

Modified: pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py
==============================================================================
--- pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py	(original)
+++ pypy/branch/src-newobjectmodel/pypy/objspace/std/objspace.py	Sat Jun  5 15:45:40 2004
@@ -168,11 +168,7 @@
         # exceptions
         for_builtins.update(self.clone_exception_hierarchy())
         
-        self.make_builtins()
-        
-        # insert stuff into the newly-made builtins
-        for key, w_value in for_builtins.items():
-            self.setitem(self.w_builtins, self.wrap(key), w_value)
+        self.make_builtins(for_builtins)
 
     def gettypeobject(self, typedef):
         # types_w maps each StdTypeDef instance to its



More information about the Pypy-commit mailing list