[pypy-svn] r67573 - in pypy/branch/less-resumedata/pypy/module: __builtin__ _pickle_support
fijal at codespeak.net
fijal at codespeak.net
Tue Sep 8 13:48:40 CEST 2009
Author: fijal
Date: Tue Sep 8 13:48:39 2009
New Revision: 67573
Modified:
pypy/branch/less-resumedata/pypy/module/__builtin__/functional.py
pypy/branch/less-resumedata/pypy/module/_pickle_support/__init__.py
pypy/branch/less-resumedata/pypy/module/_pickle_support/maker.py
Log:
Port 67566 from trunk
Modified: pypy/branch/less-resumedata/pypy/module/__builtin__/functional.py
==============================================================================
--- pypy/branch/less-resumedata/pypy/module/__builtin__/functional.py (original)
+++ pypy/branch/less-resumedata/pypy/module/__builtin__/functional.py Tue Sep 8 13:48:39 2009
@@ -395,14 +395,17 @@
descr_next.unwrap_spec = ["self", ObjSpace]
def descr___reduce__(self, space):
+ from pypy.interpreter.mixedmodule import MixedModule
+ w_mod = space.getbuiltinmodule('_pickle_support')
+ mod = space.interp_w(MixedModule, w_mod)
+ w_new_inst = mod.get('enumerate_new')
w_info = space.newtuple([self.w_iter, self.w_index])
- return space.newtuple([space.wrap(_make_enumerate), w_info])
+ return space.newtuple([w_new_inst, w_info])
descr___reduce__.unwrap_spec = ["self", ObjSpace]
+# exported through _pickle_support
def _make_enumerate(space, w_iter, w_index):
return space.wrap(W_Enumerate(w_iter, w_index))
-_make_enumerate.unwrap_spec = [ObjSpace, W_Root, W_Root]
-_make_enumerate = interp2app(_make_enumerate)
W_Enumerate.typedef = TypeDef("enumerate",
__new__=interp2app(W_Enumerate.descr___new__.im_func),
@@ -448,9 +451,13 @@
descr_next.unwrap_spec = ["self", ObjSpace]
def descr___reduce__(self, space):
+ from pypy.interpreter.mixedmodule import MixedModule
+ w_mod = space.getbuiltinmodule('_pickle_support')
+ mod = space.interp_w(MixedModule, w_mod)
+ w_new_inst = mod.get('reversed_new')
info_w = [self.w_sequence, space.wrap(self.remaining)]
w_info = space.newtuple(info_w)
- return space.newtuple([space.wrap(_make_reversed), w_info])
+ return space.newtuple([w_new_inst, w_info])
descr___reduce__.unwrap_spec = ["self", ObjSpace]
W_ReversedIterator.typedef = TypeDef("reversed",
@@ -459,14 +466,14 @@
__reduce__=interp2app(W_ReversedIterator.descr___reduce__),
)
+# exported through _pickle_support
def _make_reversed(space, w_seq, w_remaining):
w_type = space.gettypeobject(W_ReversedIterator.typedef)
iterator = space.allocate_instance(W_ReversedIterator, w_type)
iterator.w_sequence = w_seq
iterator.remaining = space.int_w(w_remaining)
return space.wrap(iterator)
-_make_reversed.unwrap_spec = [ObjSpace, W_Root, W_Root]
-_make_reversed = interp2app(_make_reversed)
+
class W_XRange(Wrappable):
Modified: pypy/branch/less-resumedata/pypy/module/_pickle_support/__init__.py
==============================================================================
--- pypy/branch/less-resumedata/pypy/module/_pickle_support/__init__.py (original)
+++ pypy/branch/less-resumedata/pypy/module/_pickle_support/__init__.py Tue Sep 8 13:48:39 2009
@@ -22,4 +22,6 @@
'xrangeiter_new': 'maker.xrangeiter_new',
'builtin_code': 'maker.builtin_code',
'builtin_function' : 'maker.builtin_function',
+ 'enumerate_new': 'maker.enumerate_new',
+ 'reversed_new': 'maker.reversed_new'
}
Modified: pypy/branch/less-resumedata/pypy/module/_pickle_support/maker.py
==============================================================================
--- pypy/branch/less-resumedata/pypy/module/_pickle_support/maker.py (original)
+++ pypy/branch/less-resumedata/pypy/module/_pickle_support/maker.py Tue Sep 8 13:48:39 2009
@@ -100,6 +100,17 @@
builtin_function.unwrap_spec = [ObjSpace, str]
+def enumerate_new(space, w_iter, w_index):
+ from pypy.module.__builtin__.functional import _make_enumerate
+ return _make_enumerate(space, w_iter, w_index)
+enumerate_new.unwrap_spec = [ObjSpace, W_Root, W_Root]
+
+def reversed_new(space, w_seq, w_remaining):
+ from pypy.module.__builtin__.functional import _make_reversed
+ return _make_reversed(space, w_seq, w_remaining)
+reversed_new.unwrap_spec = [ObjSpace, W_Root, W_Root]
+
+
# ___________________________________________________________________
# Helper functions for internal use
More information about the Pypy-commit
mailing list