[Distutils] distlib locator compares reasonably well with pip's PackageFinder
Vinay Sajip
vinay_sajip at yahoo.co.uk
Thu Oct 25 11:38:20 CEST 2012
As an extended test of the locator functionality in distlib, I compared the
results from the locate() API with the results from pip's PackageFinder. The
results seem encouraging: out of 24938 packages tested, only 510 (2%) gave
different results from pip. Out of the 510, many are due to:
1. distlib (currently) looks for archives which are machine-independent, and
skips archives which contain machine-dependent strings in their names.
2. distlib (currently) skips archives automatically generated by sites like
GitHub and BitBucket, since the download archive doesn't always contain
version information in the name of the download. Examples:
http://github.com/user/project/tarball/master
http://bitbucket.org/user/project/get/tip.zip
In a (much) smaller number of cases, the differences are because locate() found
an archive where pip didn't. But for 98% of the projects registered on PyPI,
locate() returns identical results to pip's PackageFinder.find_requirement,
and does it slightly faster in most cases :-)
The comparison script, along with the list of differences, is at
https://gist.github.com/3951634
Regards,
Vinay Sajip
More information about the Distutils-SIG
mailing list