-
Notifications
You must be signed in to change notification settings - Fork 150
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
Parens in metadata version specifiers #551
Comments
Looks like it says:
So the parentheses shouldn’t be generated but should still be accepted. |
Agreed, and this is imo both a pip and a wheel bug. The wheel bug is arguably not because it still should work according to the spec. The pip bug just looked harder to fix given the implementation, but I didn't check whether their vendored copy of packaging was out of date. And indeed it is. Packaging has switched from a regex-only to a tokenizing parser that successfully handles the identity requirements in parens. So pip just needs to update the vendored version. Although that appears to be quite complicated. |
I'm ready to cut a new release once the linked PR is okayed. |
Released. |
The packaging spec says that Requires-Dist specifiers should not have parens, but wheel add the parens here.
I ran into this problem because of a super edge case installing a wheel that has exact identity (===) dependencies. Pip allows any character after an the identity specifier, which means that it also captures the closing paren and so a requirement like
requests (===1.2.3)
won't match. The identity specifiers are used for prereleases and some other special-case version specifiers.The text was updated successfully, but these errors were encountered: