Clearer errorr message for "Cannot parse" when targetting multiple version
See original GitHub issueIs your feature request related to a problem? Please describe.
I was working on a project that is only intended to run on Python 3.10. However, the black
configuration incorrectly listed multiple target versions because I copied the file from a different project.
When I tried to format a file with a match statement, the error was
error: cannot format foo.py: Cannot parse: 2:6: match bar:
I was initially confused as I knew that black
had added Python 3.10 support. Then I noticed my mistake. By saying that the code should target a multiple Python versions, using a match statement would not be valid.
Describe the solution you’d like
If black
encounters a parsing error and it was configured to target multiple Python versions, I think it would be helpful to mention that the syntax “might be valid, but not across all target versions”. This would be a hint to the user to think about if they should be using that syntax or that black
is misconfigured (as it was in my case).
Describe alternatives you’ve considered
It would require more work, but the parser could back track and attempt each of the parser for each of the listed target versions. That would allow black
provide an even more specific error message. Something like “this is valid for Python 3.10, but targeting Python 3.10 and 3.9”, while also being able to identify an invalid syntax.
Issue Analytics
- State:
- Created a year ago
- Comments:5 (2 by maintainers)
ok, cool. Looks like it’s left for a pending reviewer to take a look
hey, usually an issue is closed when a PR is merged. this is done automatically if the PR contains something like
closes #3294
.