[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