bpo-36541: lib2to3: Support complex expressions in *args and **kwargs. #12703
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 matchwhat 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.
https://bugs.python.org/issue36541