3 Re @ s d dl mZ d dlZd dlmZ d dlmZ d dlmZm Z d dl mZ d dlm Z d dlmZ erd d lmZmZ d d lmZ d dlmZ ejeZdd Zdd Zdd Zdd ZdS ) )absolute_importN) FeedParser) pkg_resources) specifiersversion)NoneMetadataError)display_path)MYPY_CHECK_RUNNING)OptionalTuple)Message)Distributionc C s4 | dkrdS t j| }tjdjtt|}||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 SpecifierSetr parsejoinmapstr)requires_pythonversion_inforequires_python_specifierpython_version r /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el9.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/packaging.pycheck_requires_python s r c C s d}t | tjr&| j|r&| j|}n0| jdr@d}| j|}ntjdt| j d}|dkrht | |t }|j| |j S )z :raises NoneMetadataError: if the distribution reports `has_metadata()` True but `get_metadata()` returns None. METADATAzPKG-INFOzNo metadata found in %s N) isinstancer DistInfoDistributionhas_metadataget_metadataloggerwarningr locationr r feedclose)dist metadata_namemetadatafeed_parserr r r r , s r c C s&