mirror of https://github.com/pypa/pip
The Python package installer
https://pip.pypa.io/
925e4b4466
This would occur when, for example, installing from a requirements file that references a certain hashed sdist, a common situation. As of pip 7, pip always tries to build a wheel for each requirement (if one wasn't provided directly) and installs from that. The way this was implemented, InstallRequirement.link pointed to the cached wheel, which obviously had a different hash than the index-sourced archive, so spurious mismatch errors would result. Now we no longer read from the wheel cache in hash-checking mode. Make populate_link(), rather than the `link` setter, responsible for mapping InstallRequirement.link to a cached wheel. populate_link() isn't called until until prepare_files(). At that point, when we've examined all InstallRequirements and their potential --hash options, we know whether we should be requiring hashes and thus whether to use the wheel cache at all. The only place that sets InstallRequirement.link other than InstallRequirement itself is pip.wheel, which does so long after hashes have been checked, when it's unpacking the wheel it just built, so it won't cause spurious hash mismatches. |
||
---|---|---|
.travis | ||
contrib | ||
docs | ||
pip | ||
tasks | ||
tests | ||
.coveragerc | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
AUTHORS.txt | ||
CHANGES.txt | ||
LICENSE.txt | ||
MANIFEST.in | ||
README.rst | ||
dev-requirements.txt | ||
setup.cfg | ||
setup.py | ||
tox.ini |
README.rst
pip === The `PyPA recommended <https://python-packaging-user-guide.readthedocs.org/en/latest/current.html>`_ tool for installing Python packages. * `Installation <https://pip.pypa.io/en/stable/installing.html>`_ * `Documentation <https://pip.pypa.io/>`_ * `Changelog <https://pip.pypa.io/en/stable/news.html>`_ * `Github Page <https://github.com/pypa/pip>`_ * `Issue Tracking <https://github.com/pypa/pip/issues>`_ * `User mailing list <http://groups.google.com/group/python-virtualenv>`_ * `Dev mailing list <http://groups.google.com/group/pypa-dev>`_ * User IRC: #pypa on Freenode. * Dev IRC: #pypa-dev on Freenode. .. image:: https://img.shields.io/pypi/v/pip.svg :target: https://pypi.python.org/pypi/pip .. image:: https://img.shields.io/travis/pypa/pip/develop.svg :target: http://travis-ci.org/pypa/pip Code of Conduct --------------- Everyone interacting in the pip project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the `PyPA Code of Conduct`_. .. _PyPA Code of Conduct: https://www.pypa.io/en/latest/code-of-conduct/