mirror of https://github.com/pypa/pip
Move InstallationCandidate to pip.index
Move InstallationCandidate from `pip.req.req_requirement` to `pip.index`, the one place where it's used.
This commit is contained in:
parent
93ce6e5e90
commit
0684a9f478
43
pip/index.py
43
pip/index.py
|
@ -28,7 +28,6 @@ from pip.download import url_to_path, path_to_url
|
|||
from pip.models import PyPI
|
||||
from pip.wheel import Wheel, wheel_ext
|
||||
from pip.pep425tags import supported_tags, supported_tags_noarch, get_platform
|
||||
from pip.req.req_requirement import InstallationCandidate
|
||||
from pip._vendor import html5lib, requests, pkg_resources, six
|
||||
from pip._vendor.packaging.version import parse as parse_version
|
||||
from pip._vendor.requests.exceptions import SSLError
|
||||
|
@ -51,6 +50,48 @@ SECURE_ORIGINS = [
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class InstallationCandidate(object):
|
||||
|
||||
def __init__(self, project, version, location):
|
||||
self.project = project
|
||||
self.version = parse_version(version)
|
||||
self.location = location
|
||||
self._key = (self.project, self.version, self.location)
|
||||
|
||||
def __repr__(self):
|
||||
return "<InstallationCandidate({0!r}, {1!r}, {2!r})>".format(
|
||||
self.project, self.version, self.location,
|
||||
)
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self._key)
|
||||
|
||||
def __lt__(self, other):
|
||||
|
||||
return self._compare(other, lambda s, o: s < o)
|
||||
|
||||
def __le__(self, other):
|
||||
return self._compare(other, lambda s, o: s <= o)
|
||||
|
||||
def __eq__(self, other):
|
||||
return self._compare(other, lambda s, o: s == o)
|
||||
|
||||
def __ge__(self, other):
|
||||
return self._compare(other, lambda s, o: s >= o)
|
||||
|
||||
def __gt__(self, other):
|
||||
return self._compare(other, lambda s, o: s > o)
|
||||
|
||||
def __ne__(self, other):
|
||||
return self._compare(other, lambda s, o: s != o)
|
||||
|
||||
def _compare(self, other, method):
|
||||
if not isinstance(other, InstallationCandidate):
|
||||
return NotImplemented
|
||||
|
||||
return method(self._key, other._key)
|
||||
|
||||
|
||||
class PackageFinder(object):
|
||||
"""This finds packages.
|
||||
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
from pip._vendor.packaging.version import parse as parse_version
|
||||
|
||||
|
||||
class InstallationCandidate(object):
|
||||
|
||||
def __init__(self, project, version, location):
|
||||
self.project = project
|
||||
self.version = parse_version(version)
|
||||
self.location = location
|
||||
self._key = (self.project, self.version, self.location)
|
||||
|
||||
def __repr__(self):
|
||||
return "<InstallationCandidate({0!r}, {1!r}, {2!r})>".format(
|
||||
self.project, self.version, self.location,
|
||||
)
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self._key)
|
||||
|
||||
def __lt__(self, other):
|
||||
|
||||
return self._compare(other, lambda s, o: s < o)
|
||||
|
||||
def __le__(self, other):
|
||||
return self._compare(other, lambda s, o: s <= o)
|
||||
|
||||
def __eq__(self, other):
|
||||
return self._compare(other, lambda s, o: s == o)
|
||||
|
||||
def __ge__(self, other):
|
||||
return self._compare(other, lambda s, o: s >= o)
|
||||
|
||||
def __gt__(self, other):
|
||||
return self._compare(other, lambda s, o: s > o)
|
||||
|
||||
def __ne__(self, other):
|
||||
return self._compare(other, lambda s, o: s != o)
|
||||
|
||||
def _compare(self, other, method):
|
||||
if not isinstance(other, InstallationCandidate):
|
||||
return NotImplemented
|
||||
|
||||
return method(self._key, other._key)
|
|
@ -5,13 +5,12 @@ import pip.pep425tags
|
|||
|
||||
from pkg_resources import parse_version, Distribution
|
||||
from pip.req import InstallRequirement
|
||||
from pip.index import PackageFinder, Link
|
||||
from pip.index import InstallationCandidate, PackageFinder, Link
|
||||
from pip.exceptions import (
|
||||
BestVersionAlreadyInstalled, DistributionNotFound, InstallationError,
|
||||
)
|
||||
from pip.utils import Inf
|
||||
from pip.download import PipSession
|
||||
from pip.req.req_requirement import InstallationCandidate
|
||||
|
||||
from mock import Mock, patch
|
||||
|
||||
|
|
Loading…
Reference in New Issue