Sort distributions when computing a signature. (#393)
This fixes #392. Previously under Python 3 (probably prior to 3.6, when dicts became ordered by default) or under Python 2 with ``-R`` or ``PYTHONHASHSEED=random`` the results were undefined because dict iteration order is undefined. The value being sorted is complex and defined by pkg_resources.Distribution: ``` @property def hashcmp(self): return ( self.parsed_version, self.precedence, self.key, _remove_md5_fragment(self.location), self.py_version or '', self.platform or '', ) def __hash__(self): return hash(self.hashcmp) def __lt__(self, other): return self.hashcmp < other.hashcmp ... ```
Showing
Please register or sign in to comment