관리-도구
편집 파일: packaging.cpython-38.pyc
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&