__init__.py 864 B

1234567891011121314151617181920
  1. from pip._internal.distributions.base import AbstractDistribution
  2. from pip._internal.distributions.sdist import SourceDistribution
  3. from pip._internal.distributions.wheel import WheelDistribution
  4. from pip._internal.req.req_install import InstallRequirement
  5. def make_distribution_for_install_requirement(install_req):
  6. # type: (InstallRequirement) -> AbstractDistribution
  7. """Returns a Distribution for the given InstallRequirement"""
  8. # Editable requirements will always be source distributions. They use the
  9. # legacy logic until we create a modern standard for them.
  10. if install_req.editable:
  11. return SourceDistribution(install_req)
  12. # If it's a wheel, it's a WheelDistribution
  13. if install_req.is_wheel:
  14. return WheelDistribution(install_req)
  15. # Otherwise, a SourceDistribution
  16. return SourceDistribution(install_req)