-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Description
Problem:
Trying to evaluate markers like extra == "test" and python_version == "2.7" gives an error:
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1378, in evaluate_marker
return marker.evaluate()
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/_vendor/packaging/markers.py", line 301, in evaluate
return _evaluate_markers(self._markers, current_environment)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/_vendor/packaging/markers.py", line 226, in _evaluate_markers
lhs_value = _get_env(environment, lhs.value)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/_vendor/packaging/markers.py", line 208, in _get_env
"{0!r} does not exist in evaluation environment.".format(name)
pkg_resources._vendor.packaging.markers.UndefinedEnvironmentName: 'extra' does not exist in evaluation environment.
An example of such marker is in the testpath distribution that jupyter depends on.
Fix:
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index 75563f95..db089550 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -1376,7 +1376,7 @@ def evaluate_marker(text, extra=None):
"""
try:
marker = packaging.markers.Marker(text)
- return marker.evaluate()
+ return marker.evaluate({'extra': extra})
except packaging.markers.InvalidMarker as e:
raise SyntaxError(e)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels