m2m模型翻译
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
931 B

6 months ago
  1. from pip._vendor.packaging.version import parse as parse_version
  2. from pip._internal.models.link import Link
  3. from pip._internal.utils.models import KeyBasedCompareMixin
  4. class InstallationCandidate(KeyBasedCompareMixin):
  5. """Represents a potential "candidate" for installation."""
  6. __slots__ = ["name", "version", "link"]
  7. def __init__(self, name: str, version: str, link: Link) -> None:
  8. self.name = name
  9. self.version = parse_version(version)
  10. self.link = link
  11. super().__init__(
  12. key=(self.name, self.version, self.link),
  13. defining_class=InstallationCandidate,
  14. )
  15. def __repr__(self) -> str:
  16. return "<InstallationCandidate({!r}, {!r}, {!r})>".format(
  17. self.name,
  18. self.version,
  19. self.link,
  20. )
  21. def __str__(self) -> str:
  22. return f"{self.name!r} candidate (version {self.version} at {self.link})"