Jiwon Seo's PEP 3102 implementation.
See SF#1549670.
The compiler package has not yet been updated.
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index eb93283..ca84c56 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -148,7 +148,8 @@
 print 'funcdef'
 ### 'def' NAME parameters ':' suite
 ### parameters: '(' [varargslist] ')'
-### varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' ('**'|'*' '*') NAME]
+### varargslist: (fpdef ['=' test] ',')* 
+###           ('*' (NAME|',' fpdef ['=' test]) [',' ('**'|'*' '*') NAME]
 ###            | ('**'|'*' '*') NAME)
 ###            | fpdef ['=' test] (',' fpdef ['=' test])* [',']
 ### fpdef: NAME | '(' fplist ')'
@@ -265,6 +266,16 @@
 d31v(1)
 def d32v((x,)): pass
 d32v((1,))
+#keyword only argument tests
+def pos0key1(*, key): return key
+pos0key1(key=100)
+def pos2key2(p1, p2, *, k1, k2=100): return p1,p2,k1,k2
+pos2key2(1, 2, k1=100)
+pos2key2(1, 2, k1=100, k2=200)
+pos2key2(1, 2, k2=100, k1=200)
+def pos2key2dict(p1, p2, *, k1=100, k2, **kwarg): return p1,p2,k1,k2,kwarg
+pos2key2dict(1,2,k2=100,tokwarg1=100,tokwarg2=200)
+pos2key2dict(1,2,tokwarg1=100,tokwarg2=200, k2=100)
 
 ### lambdef: 'lambda' [varargslist] ':' test
 print 'lambdef'
@@ -279,6 +290,9 @@
 verify(l5(1, 2) == 5)
 verify(l5(1, 2, 3) == 6)
 check_syntax("lambda x: x = 2")
+l6 = lambda x, y, *, k=20: x+y+k
+verify(l6(1,2) == 1+2+20)
+verify(l6(1,2,k=10) == 1+2+10)
 
 ### stmt: simple_stmt | compound_stmt
 # Tested below