Current File : //lib/python3.9/site-packages/pip/_internal/utils/__pycache__/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&