2bi<SSKrSSKrSSKrSSKJrJrJrJr SSKJ r J r SSK J r \"S\ 5r\R"\5rS\\ S\\S4S \4S jr\R*"S S 9S \ S \ 4Sj5rS\ S \4Sjrg)N)NewTypeOptionalTuplecast) specifiersversion RequirementNormalizedExtrarequires_python version_info.returncUcg[R"U5n[R"SR [ [ U555nX2;$)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 SpecifierSetrparsejoinmapstr)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_pythonrsE * 7 7 H]]388C\,B#CDN  66i)maxsize req_stringc[U5$)z5Construct a packaging.Requirement object with cachingr )rs rget_requirementr%s z ""rextracj[[[R"SSU5R 55$)a0Convert 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.-]+_)rr resublower)rs r safe_extrar%0s( (93!F!L!L!N OOr) functoolsloggingr"typingrrrrpip._vendor.packagingrr"pip._vendor.packaging.requirementsr rr getLogger__name__loggerintboolr lru_cacherr%rrr2s 115:+S1   8 $7c]727S/7 7. S!## #"# Pc Po Pr