2bi< S SK r S SKrS SKrS SKJrJrJrJr S SKJ r J
r
S SKJr \" S\
5 r\R " \5 rS\\
S\\S4 S \4S
jr\ R* " SS9S
\
S \4S j5 rS\
S \4S jrg) N)NewTypeOptionalTuplecast)
specifiersversionRequirementNormalizedExtrarequires_pythonversion_info.returnc U c g[ R " U 5 n[ R " SR [ [ U5 5 5 nX2; $ )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.
T.)r SpecifierSetr parsejoinmapstr)r r
requires_python_specifierpython_versions ڏ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_internal/utils/packaging.pycheck_requires_pythonr sE * 7 7 H]]388C\,B#CDN66 i )maxsize
req_stringc [ U 5 $ )z5Construct a packaging.Requirement object with cachingr )r s r get_requirementr % s z""r extrac j [ [ [ R " SSU 5 R 5 5 $ )a0 Convert an arbitrary string to a standard 'extra' name
Any runs of non-alphanumeric characters are replaced with a single '_',
and the result is always lowercased.
This function is duplicated from ``pkg_resources``. Note that this is not
the same to either ``canonicalize_name`` or ``_egg_link_name``.
z[^A-Za-z0-9.-]+_)r r resublower)r s r
safe_extrar% 0 s( (93!F!L!L!NOOr ) functoolsloggingr" typingr r r r pip._vendor.packagingr r "pip._vendor.packaging.requirementsr
r r getLogger__name__loggerintboolr lru_cacher r% r r