| from dataclasses import dataclass |
|
|
| from pip._vendor.packaging.version import Version |
| from pip._vendor.packaging.version import parse as parse_version |
|
|
| from pip._internal.models.link import Link |
|
|
|
|
| @dataclass(frozen=True) |
| class InstallationCandidate: |
| """Represents a potential "candidate" for installation.""" |
|
|
| __slots__ = ["name", "version", "link"] |
|
|
| name: str |
| version: Version |
| link: Link |
|
|
| def __init__(self, name: str, version: str, link: Link) -> None: |
| object.__setattr__(self, "name", name) |
| object.__setattr__(self, "version", parse_version(version)) |
| object.__setattr__(self, "link", link) |
|
|
| def __str__(self) -> str: |
| return f"{self.name!r} candidate (version {self.version} at {self.link})" |
|
|