[pypy-svn] r68403 - in pypy/branch/improve-kwd-args/pypy/interpreter: . test

cfbolz at codespeak.net cfbolz at codespeak.net
Tue Oct 13 23:22:02 CEST 2009


Author: cfbolz
Date: Tue Oct 13 23:22:02 2009
New Revision: 68403

Modified:
   pypy/branch/improve-kwd-args/pypy/interpreter/argument.py
   pypy/branch/improve-kwd-args/pypy/interpreter/eval.py
   pypy/branch/improve-kwd-args/pypy/interpreter/test/test_argument.py
   pypy/branch/improve-kwd-args/pypy/interpreter/typedef.py
Log:
fix annotation


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	Tue Oct 13 23:22:02 2009
@@ -39,6 +39,14 @@
         scopelen += self.has_kwarg()
         return scopelen
 
+    def getallvarnames(self):
+        argnames = self.argnames
+        if self.varargname is not None:
+            argnames = argnames + [self.varargname]
+        if self.kwargname is not None:
+            argnames = argnames + [self.kwargname]
+        return argnames
+
     def __repr__(self):
         return "Signature(%r, %r, %r)" % (
                 self.argnames, self.varargname, self.kwargname)

Modified: pypy/branch/improve-kwd-args/pypy/interpreter/eval.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/interpreter/eval.py	(original)
+++ pypy/branch/improve-kwd-args/pypy/interpreter/eval.py	Tue Oct 13 23:22:02 2009
@@ -38,21 +38,10 @@
     def getvarnames(self):
         """List of names including the arguments, vararg and kwarg,
         and possibly more locals."""
-        argnames, varargname, kwargname = self.signature()
-        if varargname is not None:
-            argnames = argnames + [varargname]
-        if kwargname is not None:
-            argnames = argnames + [kwargname]
-        return argnames
+        return self.signature().getallvarnames()
 
     def getformalargcount(self):
-        argnames, varargname, kwargname = self.signature()
-        argcount = len(argnames)
-        if varargname is not None:
-            argcount += 1
-        if kwargname is not None:
-            argcount += 1
-        return argcount
+        return self.signature().scope_length()
 
     def getdocstring(self, space):
         return space.w_None

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	Tue Oct 13 23:22:02 2009
@@ -12,21 +12,25 @@
         assert not sig.has_vararg()
         assert not sig.has_kwarg()
         assert sig.scope_length() == 3
+        assert sig.getallvarnames() == ["a", "b", "c"]
         sig = Signature(["a", "b", "c"], "c", None)
         assert sig.num_argnames() == 3
         assert sig.has_vararg()
         assert not sig.has_kwarg()
         assert sig.scope_length() == 4
+        assert sig.getallvarnames() == ["a", "b", "c", "c"]
         sig = Signature(["a", "b", "c"], None, "c")
         assert sig.num_argnames() == 3
         assert not sig.has_vararg()
         assert sig.has_kwarg()
         assert sig.scope_length() == 4
+        assert sig.getallvarnames() == ["a", "b", "c", "c"]
         sig = Signature(["a", "b", "c"], "d", "c")
         assert sig.num_argnames() == 3
         assert sig.has_vararg()
         assert sig.has_kwarg()
         assert sig.scope_length() == 5
+        assert sig.getallvarnames() == ["a", "b", "c", "d", "c"]
 
     def test_eq(self):
         sig1 = Signature(["a", "b", "c"], "d", "c")

Modified: pypy/branch/improve-kwd-args/pypy/interpreter/typedef.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/interpreter/typedef.py	(original)
+++ pypy/branch/improve-kwd-args/pypy/interpreter/typedef.py	Tue Oct 13 23:22:02 2009
@@ -614,14 +614,13 @@
     return space.newtuple([space.wrap(name) for name in code.getvarnames()])
 
 def fget_co_argcount(space, code): # unwrapping through unwrap_spec
-    argnames, varargname, kwargname = code.signature()
-    return space.wrap(len(argnames))
+    return space.wrap(code.signature().num_argnames())
 
 def fget_co_flags(space, code): # unwrapping through unwrap_spec
-    argnames, varargname, kwargname = code.signature()
+    sig = code.signature()
     flags = 0
-    if varargname is not None: flags |= CO_VARARGS
-    if kwargname  is not None: flags |= CO_VARKEYWORDS
+    if sig.has_vararg(): flags |= CO_VARARGS
+    if sig.has_kwarg(): flags |= CO_VARKEYWORDS
     return space.wrap(flags)
 
 def fget_co_consts(space, code): # unwrapping through unwrap_spec



More information about the Pypy-commit mailing list