Closed belak closed 7 years ago
It looks like this might be related to the order of elements? But I'm not sure why it would only fail sometimes.
Even with the fixes on master, I'm still running into problems with running the tests locally.
It looks like this is a breaking change in setuptools (pkg_resources.Requirement.parse
). It is somewhat of an undocumented API.
from pkg_resources import Requirement
req = Requirement.parse('PickyThing<1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1')
req.specs
# [('!=', '1.9.6'), ('<', '2.0a0'), ('>', '1.9'), ('==', '2.4c1'), ('<', '1.6')]
# The output order is not deterministic (although it will be the same until you restart the interpreter)
Previously, pkg_resources would return them in the order they came.
Ok, it looks like setuptools started relying on a library called packaging
. This library stores the specifiers into a set.
I see a couple interesting things here. Firstly, packaging
is probably a great library to rely on instead of setuptools' undocumented API!
So fix the tests to use sets also ?
@davidfischer @belak proposed fix in #31
The tests on the master branch are currently failing.