관리-도구
편집 파일: candidates.cpython-311.pyc
� �Dg!N � �J � d dl Z d dlZd dlmZmZmZmZmZmZm Z m Z d dlmZ d dl mZmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d dlmZmZ d d lmZ d d lm Z m!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/� � Z0e d Z1 e ed� � Z2de)dee1 fd�Z3dede#de#fd�Z4dede#de#fd�Z5dede#de#fd�Z6 G d� de)� � Z7 G d� de7� � Z8 G d � d!e7� � Z9 G d"� d#e)� � Z: 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�InvalidInstalledPackage�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"