bpo-36541: lib2to3: Support complex expressions in *args and **kwargs.#12703
bpo-36541: lib2to3: Support complex expressions in *args and **kwargs.#12703thatch wants to merge 1 commit intopython:masterfrom
Conversation
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.
|
Hello, and thanks for your contribution! I'm a bot set up to make sure that the project can legally accept your contribution by verifying you have signed the PSF contributor agreement (CLA). Our records indicate we have not received your CLA. For legal reasons we need you to sign this before we can look at your contribution. Please follow the steps outlined in the CPython devguide to rectify this issue. If you have recently signed the CLA, please wait at least one business day You can check yourself to see if the CLA has been received. Thanks again for your contribution, we look forward to reviewing it! |
|
See also #6586 which seems to solve the same issue as this PR. |
|
I'll defer to #6586 which already has a news entry. |
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
*argsand**kwargsto 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