mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
Merge pull request #10509 from jdufresne/guards
This commit is contained in:
commit
0442875a68
5 changed files with 19 additions and 37 deletions
0
news/abfa4c22-fcc2-4f54-9a90-22a007c7f577.trivial.rst
Normal file
0
news/abfa4c22-fcc2-4f54-9a90-22a007c7f577.trivial.rst
Normal file
|
@ -17,6 +17,7 @@ from typing import (
|
|||
|
||||
from pip._vendor.packaging.requirements import Requirement
|
||||
from pip._vendor.packaging.specifiers import InvalidSpecifier, SpecifierSet
|
||||
from pip._vendor.packaging.utils import NormalizedName
|
||||
from pip._vendor.packaging.version import LegacyVersion, Version
|
||||
|
||||
from pip._internal.models.direct_url import (
|
||||
|
@ -30,8 +31,6 @@ from pip._internal.utils.urls import url_to_path
|
|||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Protocol
|
||||
|
||||
from pip._vendor.packaging.utils import NormalizedName
|
||||
else:
|
||||
Protocol = object
|
||||
|
||||
|
@ -114,7 +113,7 @@ class BaseDistribution(Protocol):
|
|||
raise NotImplementedError()
|
||||
|
||||
@property
|
||||
def canonical_name(self) -> "NormalizedName":
|
||||
def canonical_name(self) -> NormalizedName:
|
||||
raise NotImplementedError()
|
||||
|
||||
@property
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
import email.message
|
||||
import logging
|
||||
from typing import (
|
||||
TYPE_CHECKING,
|
||||
Collection,
|
||||
Iterable,
|
||||
Iterator,
|
||||
List,
|
||||
NamedTuple,
|
||||
Optional,
|
||||
)
|
||||
from typing import Collection, Iterable, Iterator, List, NamedTuple, Optional
|
||||
|
||||
from pip._vendor import pkg_resources
|
||||
from pip._vendor.packaging.requirements import Requirement
|
||||
from pip._vendor.packaging.utils import canonicalize_name
|
||||
from pip._vendor.packaging.utils import NormalizedName, canonicalize_name
|
||||
from pip._vendor.packaging.version import parse as parse_version
|
||||
|
||||
from pip._internal.utils import misc # TODO: Move definition here.
|
||||
|
@ -27,9 +19,6 @@ from .base import (
|
|||
Wheel,
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pip._vendor.packaging.utils import NormalizedName
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -58,7 +47,7 @@ class Distribution(BaseDistribution):
|
|||
return self._dist.egg_info
|
||||
|
||||
@property
|
||||
def canonical_name(self) -> "NormalizedName":
|
||||
def canonical_name(self) -> NormalizedName:
|
||||
return canonicalize_name(self._dist.project_name)
|
||||
|
||||
@property
|
||||
|
|
|
@ -2,19 +2,16 @@
|
|||
"""
|
||||
|
||||
import logging
|
||||
from typing import TYPE_CHECKING, Callable, Dict, List, NamedTuple, Optional, Set, Tuple
|
||||
from typing import Callable, Dict, List, NamedTuple, Optional, Set, Tuple
|
||||
|
||||
from pip._vendor.packaging.requirements import Requirement
|
||||
from pip._vendor.packaging.utils import canonicalize_name
|
||||
from pip._vendor.packaging.utils import NormalizedName, canonicalize_name
|
||||
|
||||
from pip._internal.distributions import make_distribution_for_install_requirement
|
||||
from pip._internal.metadata import get_default_environment
|
||||
from pip._internal.metadata.base import DistributionVersion
|
||||
from pip._internal.req.req_install import InstallRequirement
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pip._vendor.packaging.utils import NormalizedName
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -24,12 +21,12 @@ class PackageDetails(NamedTuple):
|
|||
|
||||
|
||||
# Shorthands
|
||||
PackageSet = Dict["NormalizedName", PackageDetails]
|
||||
Missing = Tuple["NormalizedName", Requirement]
|
||||
Conflicting = Tuple["NormalizedName", DistributionVersion, Requirement]
|
||||
PackageSet = Dict[NormalizedName, PackageDetails]
|
||||
Missing = Tuple[NormalizedName, Requirement]
|
||||
Conflicting = Tuple[NormalizedName, DistributionVersion, Requirement]
|
||||
|
||||
MissingDict = Dict["NormalizedName", List[Missing]]
|
||||
ConflictingDict = Dict["NormalizedName", List[Conflicting]]
|
||||
MissingDict = Dict[NormalizedName, List[Missing]]
|
||||
ConflictingDict = Dict[NormalizedName, List[Conflicting]]
|
||||
CheckResult = Tuple[MissingDict, ConflictingDict]
|
||||
ConflictDetails = Tuple[PackageSet, CheckResult]
|
||||
|
||||
|
@ -118,7 +115,7 @@ def check_install_conflicts(to_install: List[InstallRequirement]) -> ConflictDet
|
|||
|
||||
def _simulate_installation_of(
|
||||
to_install: List[InstallRequirement], package_set: PackageSet
|
||||
) -> Set["NormalizedName"]:
|
||||
) -> Set[NormalizedName]:
|
||||
"""Computes the version of packages after installing to_install."""
|
||||
# Keep track of packages that were installed
|
||||
installed = set()
|
||||
|
@ -136,8 +133,8 @@ def _simulate_installation_of(
|
|||
|
||||
|
||||
def _create_whitelist(
|
||||
would_be_installed: Set["NormalizedName"], package_set: PackageSet
|
||||
) -> Set["NormalizedName"]:
|
||||
would_be_installed: Set[NormalizedName], package_set: PackageSet
|
||||
) -> Set[NormalizedName]:
|
||||
packages_affected = set(would_be_installed)
|
||||
|
||||
for package_name in package_set:
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
"""
|
||||
|
||||
import re
|
||||
from typing import TYPE_CHECKING, List, Optional, Tuple
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
from pip._vendor.packaging.tags import (
|
||||
PythonVersion,
|
||||
Tag,
|
||||
compatible_tags,
|
||||
cpython_tags,
|
||||
|
@ -14,10 +15,6 @@ from pip._vendor.packaging.tags import (
|
|||
mac_platforms,
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pip._vendor.packaging.tags import PythonVersion
|
||||
|
||||
|
||||
_osx_arch_pat = re.compile(r"(.+)_(\d+)_(\d+)_(.+)")
|
||||
|
||||
|
||||
|
@ -95,7 +92,7 @@ def _expand_allowed_platforms(platforms: Optional[List[str]]) -> Optional[List[s
|
|||
return result
|
||||
|
||||
|
||||
def _get_python_version(version: str) -> "PythonVersion":
|
||||
def _get_python_version(version: str) -> PythonVersion:
|
||||
if len(version) > 1:
|
||||
return int(version[0]), int(version[1:])
|
||||
else:
|
||||
|
@ -132,7 +129,7 @@ def get_supported(
|
|||
"""
|
||||
supported: List[Tag] = []
|
||||
|
||||
python_version: Optional["PythonVersion"] = None
|
||||
python_version: Optional[PythonVersion] = None
|
||||
if version is not None:
|
||||
python_version = _get_python_version(version)
|
||||
|
||||
|
|
Loading…
Reference in a new issue