Current File : //lib/python3.9/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-39.pyc |
a
[��fH � @ sz d Z ddlZddlZddlmZ ddlmZ ddlmZm Z m
Z
mZmZm
Z
ddlmZ ddlmZ ddlmZ dd lmZmZmZmZmZmZ dd
lmZ ddlmZ ddlm Z dd
l!m"Z" ddl#m$Z$m%Z% ddl&m'Z' ddl(m)Z)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0m1Z1 ddl/m2Z2 ddl3m4Z4 e�5e6�Z7ee8e
e$ f Z9dee
e:e:e:f e;dd�dd�Z<G dd� de)�Z=dS )ay Dependency Resolution
The dependency resolution in pip is performed as follows:
for top-level requirements:
a. only one spec allowed per project, regardless of conflicts or not.
otherwise a "double requirement" exception is raised
b. they override sub-dependency requirements.
for sub-dependencies
a. "first found, wins" (where the order is breadth first)
� N)�defaultdict)�chain)�DefaultDict�Iterable�List�Optional�Set�Tuple)�
specifiers)�Requirement)�
WheelCache)�BestVersionAlreadyInstalled�DistributionNotFound� HashError�
HashErrors�NoneMetadataError�UnsupportedPythonVersion)�
PackageFinder)�BaseDistribution)�Link)�RequirementPreparer)�InstallRequirement�check_invalid_constraint_type)�RequirementSet)�BaseResolver�InstallRequirementProvider)�
get_supported)�
indent_log)�dist_in_usersite�normalize_version_info)�dist_in_install_path)�check_requires_pythonF)�dist�version_info�ignore_requires_python�returnc
C s� zt | j�}W n2 ty@ } zt| t |���W Y d}~n
d}~0 0 zt||d�}W n8 tjy� } zt�d| j |� W Y d}~dS d}~0 0 |r�dS d�
tt |��}|r�t�d| j ||� dS t
d�| j ||���dS )a�
Check whether the given Python version is compatible with a distribution's
"Requires-Python" value.
:param version_info: A 3-tuple of ints representing the Python
major-minor-micro version to check.
:param ignore_requires_python: Whether to ignore the "Requires-Python"
value if the given Python version isn't compatible.
:raises UnsupportedPythonVersion: When the given Python version isn't
compatible.
N)r# z-Package %r has an invalid Requires-Python: %s�.zBIgnoring failed Requires-Python check for package %r: %s not in %rz8Package {!r} requires a different Python: {} not in {!r})�str�requires_python�FileNotFoundErrorr r! r
ZInvalidSpecifier�logger�warning�raw_name�join�map�debugr �format)r"