관리-도구
편집 파일: packaging.cpython-39.pyc
a [��f� � @ s� d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dl m Z d dlmZm Z d dlmZ d dlmZ d d lmZ d d lmZ e�e�Zee eedf ed�d d�Zeed�dd�Zeed�dd�Ze jdd�eed�dd��Z dS )� N)�Message)� FeedParser)�Optional�Tuple)� pkg_resources)� specifiers�version��Requirement)�Distribution)�NoneMetadataError)�display_path.)�requires_python�version_info�returnc C s4 | du rdS t �| �}t�d�tt|���}||v S )a� Check if the given Python version matches a "Requires-Python" specifier. :param version_info: A 3-tuple of ints representing a Python major-minor-micro version to check (e.g. `sys.version_info[:3]`). :return: `True` if the given Python version satisfies the requirement. Otherwise, return `False`. :raises InvalidSpecifier: If `requires_python` has an invalid format. NT�.)r ZSpecifierSetr �parse�join�map�str)r r Zrequires_python_specifierZpython_version� r �A/usr/lib/python3.9/site-packages/pip/_internal/utils/packaging.py�check_requires_python s r )�distr c C s� d}t | tj�r&| �|�r&| �|�}n0| �d�r@d}| �|�}nt�dt| j�� d}|du rht | |��t � }|�|� |�� S )z� :raises NoneMetadataError: if the distribution reports `has_metadata()` True but `get_metadata()` returns None. ZMETADATAzPKG-INFOzNo metadata found in %s� N) � isinstancer ZDistInfoDistribution�has_metadata�get_metadata�loggerZwarningr �locationr r Zfeed�close)r Z metadata_name�metadataZfeed_parserr r r r ) s � r c C s2 | � d�r.| �d�D ]}|�� r|�� S qdS )NZ INSTALLERr )r Zget_metadata_lines�strip)r �liner r r � get_installerD s r$ i )�maxsize)� req_stringr c C s t | �S )z5Construct a packaging.Requirement object with cachingr )r&