관리-도구
편집 파일: package_finder.cpython-38.pyc
U ʗReܒ � @ sj d Z ddlZddlZddlZddlZddlZddlmZmZm Z m Z mZmZm Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lmZmZmZmZ dd lmZmZ ddl m!Z! ddl"m#Z# dd l$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= dddgZ>e1e?�Z@e ed eeAeBf f ZCeeAeAeAee eA eCf ZDd4e%eeAeAeAf eEeEd�d d!�ZFG d"d#� d#ejG�ZHG d$d%� d%�ZIe e! e5eBe e! d&�d'd(�ZJG d)d*� d*�ZKG d+d� d�ZLG d,d-� d-�ZMG d.d� d�ZNeBeBeAd/�d0d1�ZOeBeBe eB d/�d2d3�ZPdS )5z!Routines related to PyPI, indexes� N)� FrozenSet�Iterable�List�Optional�Set�Tuple�Union)� specifiers)�Tag)�canonicalize_name)�_BaseVersion)�parse)�BestVersionAlreadyInstalled�DistributionNotFound�InvalidWheelFilename�UnsupportedWheel)� LinkCollector�parse_links)�InstallationCandidate)� FormatControl)�Link)�SearchScope)�SelectionPreferences)�TargetPython)�Wheel)�InstallRequirement)� getLogger)�WHEEL_EXTENSION)�Hashes)� indent_log)�build_netloc)�check_requires_python)�SUPPORTED_EXTENSIONSr �BestCandidateResult� PackageFinder� F)�link�version_info�ignore_requires_python�returnc C s~ zt | j|d�}W n& tjk r8 t�d| j| � Y nBX |szd�tt|��}|sht� d|| j| � dS t�d|| j| � dS )aa Return whether the given Python version is compatible with a link'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. )r'