-
-
Notifications
You must be signed in to change notification settings - Fork 82
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
InvalidRequirement produced for git URL in extra #357
Comments
Please do. The fix will be committed here and then synced to CPython later. |
Would someone explain what the problem is and why adding the space corrects that condition? |
The issue is that Grammar stuff is tricky, but I thiiiiink |
In other more different reductive words, you need a space before the semicolon, because this is one of the paper cuts in PEP 508's URLs. 🤷🏻♂️ |
You're correct. Semicolon is a valid character in a URL, so the PEP 508 parser's behaviour is correct to include it in the |
Thanks for the deeper explanation. That's exactly what I was looking for. I also looked at the grammar and the complete grammar. Interestingly, both supply different definitions for Either way, the spec does require the space between the urlspec and the |
I do observe, though, that |
Thanks @hauntsaninja and others for reporting, triaging, and drafting a patch. Fix is rolling out in 4.8.3. Does this fix need a backport to 2.x (Python 2.7 support)? That is, are there use-cases on older Pythons affected by this bug that would benefit from the fix? |
I realize this change needs a port to CPython, but so also does 4.6.4 and later. I'm unsure if the changes from 4.7 and 4.8 can be safely backported in CPython, so I'll probably need to introduce those changes and the bugfix changes separately. |
Ported to CPython in bpo-46105. |
Originally filed at pypa/packaging#494
This results in the equivalent of:
uranusjr suggested adding a space before the semicolon here: https://github.com/python/cpython/blob/908fd691f96403a3c30d85c17dd74ed1f26a60fd/Lib/importlib/metadata/__init__.py#L678
Happy to make a PR for that — if so, should I also make a PR to CPython, or is there a separate process for porting?
The text was updated successfully, but these errors were encountered: