XylotrechusZ
U
��.e� � @ s� d dl mZ d dlZd dlmZ d dlmZ d dlmZm Z d dl
mZ d dlm
Z
d dlmZ er�d d lmZmZ d d
lmZ d dlmZ e�e�Zdd
� Zdd� Zdd� Zdd� ZdS )� )�absolute_importN)�
FeedParser)�
pkg_resources)�
specifiers�version)�NoneMetadataError)�display_path)�MYPY_CHECK_RUNNING)�Optional�Tuple)�Message)�Distributionc C s4 | dkrdS t �| �}t�d�tt|���}||kS )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)�requires_python�version_infoZrequires_python_specifierZpython_version� r �A/usr/lib/python3.8/site-packages/pip/_internal/utils/packaging.py�check_requires_python s
r c C s� d}t | tj�r&| �|�r&| �|�}n0| �d�r@d}| �|�}nt�dt| j�� d}|dkrht | |��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)�distZ
metadata_nameZmetadataZfeed_parserr r r r , s �
r c C s&