관리-도구
편집 파일: package_finder.cpython-310.pyc
o ƚRe�� � @ sp d Z ddlZddlZddlZddlZddlmZmZmZm Z m Z mZmZ ddl mZ ddlmZ ddlmZ ddlmZ ddlmZ dd lmZmZmZmZ dd lmZmZ ddlm Z ddl!m"Z" dd l#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> g d�Z?e0e@�ZAeed eeBeCf f ZDeeBeBeBee eB eDf ZE d9de$deeBeBeBf d eFd!eFfd"d#�ZGG d$d%� d%�ZHd&ee d'e4d(eCd!ee fd)d*�ZIG d+d,� d,�ZJG d-d.� d.�ZKG d/d0� d0�ZLG d1d2� d2�ZMd3eCd4eCd!eBfd5d6�ZNd3eCd4eCd!e eC fd7d8�ZOdS ):z!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_EXTENSIONS)�url_to_path)r �BestCandidateResult� PackageFinder� F�link�version_info�ignore_requires_python�returnc C s~ z t | j|d�}W n tjy t�d| j| � Y dS w |s=d�tt|��}|s4t� 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( z2Ignoring invalid Requires-Python (%r) for link: %s�.z4Link requires a different Python (%s not in: %r): %sFzBIgnoring failed Requires-Python check (%s not in: %r) for link: %sT) r! �requires_pythonr �InvalidSpecifier�logger�debug�join�map�str�verbose)r'