[pypy-svn] r68330 - in pypy/branch/improve-kwd-args/pypy: interpreter interpreter/test objspace/std
pedronis at codespeak.net
pedronis at codespeak.net
Mon Oct 12 10:54:18 CEST 2009
Author: pedronis
Date: Mon Oct 12 10:54:14 2009
New Revision: 68330
Modified:
pypy/branch/improve-kwd-args/pypy/interpreter/argument.py
pypy/branch/improve-kwd-args/pypy/interpreter/test/test_argument.py
pypy/branch/improve-kwd-args/pypy/objspace/std/fake.py
Log:
(cfbolz, pedronis) fix failures
Modified: pypy/branch/improve-kwd-args/pypy/interpreter/argument.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/interpreter/argument.py (original)
+++ pypy/branch/improve-kwd-args/pypy/interpreter/argument.py Mon Oct 12 10:54:14 2009
@@ -316,13 +316,13 @@
def parse(self, fnname, signature, defaults_w=[], blindargs=0):
# used by geninterped code
+ # and ./objspace/std/fake.py
"""Parse args and kwargs to initialize a frame
according to the signature of code object.
"""
return self.parse_obj(None, fnname, signature, defaults_w,
blindargs)
- # xxx have only this one
def parse_obj(self, w_firstarg,
fnname, signature, defaults_w=[], blindargs=0):
# used by ./interpreter/gateway.py
Modified: pypy/branch/improve-kwd-args/pypy/interpreter/test/test_argument.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/interpreter/test/test_argument.py (original)
+++ pypy/branch/improve-kwd-args/pypy/interpreter/test/test_argument.py Mon Oct 12 10:54:14 2009
@@ -1,4 +1,4 @@
-from pypy.interpreter.argument import Arguments
+from pypy.interpreter.argument import Arguments, ArgumentsForTranslation
class DummySpace(object):
@@ -31,60 +31,64 @@
w_dict = dict
-class TestArguments(object):
+class TestArgumentsForTranslation(object):
def test_unmatch_signature(self):
space = DummySpace()
- args = Arguments(space, [1,2,3])
+ args = ArgumentsForTranslation(space, [1,2,3])
sig = (['a', 'b', 'c'], None, None)
data = args.match_signature(sig, [])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [1])
+ args = ArgumentsForTranslation(space, [1])
sig = (['a', 'b', 'c'], None, None)
data = args.match_signature(sig, [2, 3])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [1,2,3,4,5])
+ args = ArgumentsForTranslation(space, [1,2,3,4,5])
sig = (['a', 'b', 'c'], 'r', None)
data = args.match_signature(sig, [])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [1], {'c': 3, 'b': 2})
+ args = ArgumentsForTranslation(space, [1], {'c': 3, 'b': 2})
sig = (['a', 'b', 'c'], None, None)
data = args.match_signature(sig, [])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [1], {'c': 5})
+ args = ArgumentsForTranslation(space, [1], {'c': 5})
sig = (['a', 'b', 'c'], None, None)
data = args.match_signature(sig, [2, 3])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [1], {'c': 5, 'd': 7})
+ args = ArgumentsForTranslation(space, [1], {'c': 5, 'd': 7})
sig = (['a', 'b', 'c'], None, 'kw')
data = args.match_signature(sig, [2, 3])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [1,2,3,4,5], {'e': 5, 'd': 7})
+ args = ArgumentsForTranslation(space, [1,2,3,4,5], {'e': 5, 'd': 7})
sig = (['a', 'b', 'c'], 'r', 'kw')
data = args.match_signature(sig, [2, 3])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [], {}, w_stararg=[1], w_starstararg={'c': 5, 'd': 7})
+ args = ArgumentsForTranslation(space, [], {},
+ w_stararg=[1],
+ w_starstararg={'c': 5, 'd': 7})
sig = (['a', 'b', 'c'], None, 'kw')
data = args.match_signature(sig, [2, 3])
new_args = args.unmatch_signature(sig, data)
assert args.unpack() == new_args.unpack()
- args = Arguments(space, [1,2], {'g': 9}, w_stararg=[3,4,5], w_starstararg={'e': 5, 'd': 7})
+ args = ArgumentsForTranslation(space, [1,2], {'g': 9},
+ w_stararg=[3,4,5],
+ w_starstararg={'e': 5, 'd': 7})
sig = (['a', 'b', 'c'], 'r', 'kw')
data = args.match_signature(sig, [2, 3])
new_args = args.unmatch_signature(sig, data)
Modified: pypy/branch/improve-kwd-args/pypy/objspace/std/fake.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/objspace/std/fake.py (original)
+++ pypy/branch/improve-kwd-args/pypy/objspace/std/fake.py Mon Oct 12 10:54:14 2009
@@ -129,9 +129,19 @@
eval.Code.__init__(self, getattr(cpy_callable, '__name__', '?'))
self.cpy_callable = cpy_callable
assert callable(cpy_callable), cpy_callable
+
def signature(self):
return [], 'args', 'kwds'
+ def funcrun(self, func, args):
+ frame = func.space.createframe(self, func.w_func_globals,
+ func.closure)
+ sig = self.signature()
+ scope_w = args.parse(func.name, sig, func.defs_w)
+ frame.setfastscope(scope_w)
+ return frame.run()
+
+
class CPythonFakeFrame(eval.Frame):
def __init__(self, space, code, w_globals=None, numlocals=-1):
More information about the Pypy-commit
mailing list