Skip to content

bpo-36541: lib2to3: Support complex expressions in *args and **kwargs. #12703

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

thatch
Copy link
Contributor

@thatch thatch commented Apr 6, 2019

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.

https://bugs.python.org/issue36541

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.
@the-knights-who-say-ni
Copy link

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
before our records are updated.

You can check yourself to see if the CLA has been received.

Thanks again for your contribution, we look forward to reviewing it!

@tirkarthi
Copy link
Member

See also #6586 which seems to solve the same issue as this PR.

@thatch
Copy link
Contributor Author

thatch commented Jun 19, 2019

I'll defer to #6586 which already has a news entry.

@thatch thatch closed this Jun 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants