packaging icon indicating copy to clipboard operation
packaging copied to clipboard

Permit `contains` calls to Specifier[Set] to use arbitrary strings

Open pradyunsg opened this issue 1 year ago • 0 comments

The following should not raise an InvalidVersion exception, and should return False instead.

❯ python -c 'from packaging.specifiers import SpecifierSet; print(SpecifierSet("===foobar", prereleases=True).contains("foobar"))'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/pradyunsg/Developer/github/packaging/src/packaging/specifiers.py", line 927, in contains
    item = Version(item)
           ^^^^^^^^^^^^^
  File "/Users/pradyunsg/Developer/github/packaging/src/packaging/version.py", line 200, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: 'foobar'

pradyunsg avatar Jan 06 '24 20:01 pradyunsg