[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