diff --git a/src/packaging/markers.py b/src/packaging/markers.py index fb7f49cf8..9cf391ab6 100644 --- a/src/packaging/markers.py +++ b/src/packaging/markers.py @@ -15,6 +15,7 @@ from ._tokenizer import ParserSyntaxError from .specifiers import InvalidSpecifier, Specifier from .utils import canonicalize_name +from .version import InvalidVersion __all__ = [ "InvalidMarker", @@ -180,7 +181,10 @@ def _eval_op(lhs: str, op: Op, rhs: str) -> bool: except InvalidSpecifier: pass else: - return spec.contains(lhs, prereleases=True) + try: + return spec.contains(lhs, prereleases=True) + except InvalidVersion: + pass oper: Operator | None = _operators.get(op.serialize()) if oper is None: diff --git a/tests/test_markers.py b/tests/test_markers.py index faf0d13b9..9017bb8e0 100644 --- a/tests/test_markers.py +++ b/tests/test_markers.py @@ -304,6 +304,7 @@ def test_environment_with_extra_none(self): {"os_name": "other", "python_version": "2.7.4"}, False, ), + ("platform_release >= '6'", {"platform_release": "6.1-foobar"}, True), ("extra == 'security'", {"extra": "quux"}, False), ("extra == 'security'", {"extra": "security"}, True), ("extra == 'SECURITY'", {"extra": "security"}, True),