bpo-36541: lib2to3: Support complex expressions in *args and **kwargs. by thatch · Pull Request #12703 · python/cpython

@thatch

There are two copies of the grammar -- the one used by Python itself as
Grammar/Grammar, and the one used by lib2to3 which has necessarily diverged at
Lib/lib2to3/Grammar.txt because it needs to support older syntax and we want it
to be reasonably stable to avoid requiring fixer rewrites.

This brings support for boolean expressions to `*args` and `**kwargs` to match
what the live Python grammar does.  Unfortunately, this means changes to the
parse tree, so three included fixers are adjusted to support either way.

Note that blib2to3 (black's fork) has commit
5192ed484bdbe507a8dd03dc31f93e4efec95b19 which solved this (albeit with
different tests) locally.