관리-도구
편집 파일: candidates.cpython-311.pyc
� �܋foM � �F � d dl Z d dlZd dlmZmZmZmZmZmZm Z m Z d dlmZ d dl mZmZ d dlmZ d dlmZmZmZmZ d dlmZ d dlmZmZ d d lmZ d d lmZm Z d dl!m"Z" d dl#m$Z$ d d l%m&Z& ddl'm(Z(m)Z)m*Z* erddl+m,Z, e j- e.� � Z/e d Z0 e ed� � Z1de(dee0 fd�Z2dede"de"fd�Z3dede"de"fd�Z4dede"de"fd�Z5 G d� de(� � Z6 G d� de6� � Z7 G d � d!e6� � Z8 G d"� d#e(� � Z9 G d$� d%e(� � Z: G d&� d'e(� � Z;dS )(� N)� TYPE_CHECKING�Any� FrozenSet�Iterable�Optional�Tuple�Union�cast)�InvalidRequirement)�NormalizedName�canonicalize_name)�Version)� HashError�InstallationSubprocessError�MetadataInconsistent�MetadataInvalid)�BaseDistribution)�Link�links_equivalent)�Wheel)�install_req_from_editable�install_req_from_line)�InstallRequirement)�direct_url_from_link)�normalize_version_info� )� Candidate�Requirement�format_name)�Factory)�AlreadyInstalledCandidate�EditableCandidate� LinkCandidatez<Python from Requires-Python>� candidate�returnc �R � t t t f}t | |� � r| S dS )z%The runtime version of BaseCandidate.N)r! r"