[Python-checkins] r59029 - in sandbox/trunk/pep362: pep362.py tests/pep362_py3k_fodder.py tests/test_pep362.py
brett.cannon
python-checkins at python.org
Sat Nov 17 05:02:43 CET 2007
Author: brett.cannon
Date: Sat Nov 17 05:02:42 2007
New Revision: 59029
Modified:
sandbox/trunk/pep362/pep362.py
sandbox/trunk/pep362/tests/pep362_py3k_fodder.py
sandbox/trunk/pep362/tests/test_pep362.py
Log:
Fix a bug where the annotation for variable keyword arguments was not being
picked up.
Modified: sandbox/trunk/pep362/pep362.py
==============================================================================
--- sandbox/trunk/pep362/pep362.py (original)
+++ sandbox/trunk/pep362/pep362.py Sat Nov 17 05:02:42 2007
@@ -159,7 +159,7 @@
if func_code.co_flags & 0x08:
self.var_kw_args = func_code.co_varnames[index]
has_annotation, annotation = self._find_annotation(func,
- self.var_args)
+ self.var_kw_args)
if has_annotation:
self.var_annotations[self.var_kw_args] = (
func.__annotations__[self.var_kw_args])
Modified: sandbox/trunk/pep362/tests/pep362_py3k_fodder.py
==============================================================================
--- sandbox/trunk/pep362/tests/pep362_py3k_fodder.py (original)
+++ sandbox/trunk/pep362/tests/pep362_py3k_fodder.py Sat Nov 17 05:02:42 2007
@@ -10,7 +10,7 @@
def arg_annotation_default(a:int=42):
pass
-def arg_annotation_var(*args:int, **kwargs:int):
+def arg_annotation_var(*args:int, **kwargs:str):
pass
def arg_annotation_keyword_only(*, a:int):
Modified: sandbox/trunk/pep362/tests/test_pep362.py
==============================================================================
--- sandbox/trunk/pep362/tests/test_pep362.py (original)
+++ sandbox/trunk/pep362/tests/test_pep362.py Sat Nov 17 05:02:42 2007
@@ -98,7 +98,7 @@
self.failUnlessEqual('', sig.var_args)
def test_var_kw_args(self):
- # Test the var_kw_args attribute.
+ # Test the var_kw_args attribute and annotations.
sig = pep362.Signature(pep362_fodder.var_kw_args)
self.failUnlessEqual('var_kw_args', sig.name)
self.failUnlessEqual('kwargs', sig.var_kw_args)
@@ -201,7 +201,7 @@
# Annotation on variable arguments (*args & **kwargs).
sig = pep362.Signature(pep362_py3k_fodder.arg_annotation_var)
self.failUnlessEqual(sig.var_annotations[sig.var_args], int)
- self.failUnlessEqual(sig.var_annotations[sig.var_kw_args], int)
+ self.failUnlessEqual(sig.var_annotations[sig.var_kw_args], str)
def test_signature(self):
def fresh_func():
More information about the Python-checkins
mailing list