8ddlZddlZddlmZddlmZddlmZmZddl m Z ddl m Z m Z ddlmZddlmZdd lmZdd lmZejeZd eed eed fdefdZdedefdZdedefdZejddedefdZ dS)N)Message) FeedParser)OptionalTuple) pkg_resources) specifiersversion Requirement) Distribution)NoneMetadataError) display_pathrequires_python version_info.returnc|dStj|}tjdt t |}||vS)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)rrrequires_python_specifierpython_versions /builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el9.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/utils/packaging.pycheck_requires_pythonrsQt * 7 H H]388C\,B,B#C#CDDN 6 66distcd}t|tjr+||r||}n\|drd}||}n/t dt|jd}|t||t}| || S)z :raises NoneMetadataError: if the distribution reports `has_metadata()` True but `get_metadata()` returns None. METADATAzPKG-INFOzNo metadata found in %s) isinstancerDistInfoDistribution has_metadata get_metadataloggerwarningrlocationr rfeedclose)r metadata_namemetadata feed_parsers rr%r%)s M$ :;; @Q@QAA $$]33  : & &" $$]330,t}2M2MNNNm444,,KX     rc|drB|dD],}|r|cS-dS)N INSTALLERr!)r$get_metadata_linesstrip)rlines r get_installerr3Dsc %%$++K88 $ $Dzz|| $zz||### $ 2ri)maxsize req_stringc t|S)z5Construct a packaging.Requirement object with cachingr )r5s rget_requirementr7Ls z " ""r)! functoolslogging email.messager email.parserrtypingrr pip._vendorrpip._vendor.packagingrr "pip._vendor.packaging.requirementsr pip._vendor.pkg_resourcesr pip._internal.exceptionsr pip._internal.utils.miscr getLogger__name__r&rintboolrr%r3 lru_cacher7rrrIs!!!!!!######""""""""%%%%%%55555555::::::222222666666111111  8 $ $7c]727S/7 7777.|6 S!!!## ###"!###r