[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