관리-도구
편집 파일: resolver.cpython-312.pyc
� G��e�^ � � � d Z ddlZddlZddlmZ ddlmZ ddlmZm Z m Z mZmZm Z ddlmZ ddlmZ ddlmZ dd lmZmZmZmZmZmZmZ dd lmZ ddlmZ ddl m!Z! dd l"m#Z# ddl$m%Z% ddl&m'Z'm(Z( ddl)m*Z* ddl+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ejt e;� Z<ee=e e' f Z> ddede e?e?e?f de@ddfd�ZA G d� de,� ZBy) 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�InstallationError�NoneMetadataError�UnsupportedPythonVersion)� PackageFinder)�BaseDistribution)�Link)�Wheel)�RequirementPreparer)�InstallRequirement�check_invalid_constraint_type)�RequirementSet)�BaseResolver�InstallRequirementProvider)�compatibility_tags)� get_supported)�direct_url_from_link)� indent_log)�normalize_version_info)�check_requires_python�dist�version_info�ignore_requires_python�returnc �� � t | j � } t ||�� }|rydj t t |� � }|r#t j d| j ||� yt dj | j ||� � �# t $ r}t | t |� � �d}~ww xY w# t j $ r+}t j d| j |� Y d}~yd}~ww xY w)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&