[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