관리-도구
편집 파일: constructors.cpython-312.pyc
� G��eTJ � �x � d Z ddlZddlZddlZddlZddlmZmZmZm Z m Z mZmZ ddl mZ ddlmZmZ ddlmZ ddlmZ ddlmZmZ dd lmZ dd lmZ ddlmZ ddlm Z dd l!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z*m+Z+ g d�Z, ejZ e.� Z/ej` jc � Z2de3dee3e e3 f fd�Z4de e3 de e3 fd�Z5dede e3 defd�Z6de3dee e3 e3e e3 f fd�Z7de3ddfd�Z8de3de3fd�Z9 G d � d!� Z:de3de:fd"�Z; d?dd#ddd#d#d#dd$�de3d%e ee e3f d&e e< d'e<d(e ee3 d)e ee3ee3 f d*e<d+e<d,e<d-e ee3ee3ee3 f f de fd.�Z=d/e3de<fd0�Z>de3d/e3de e3 fd1�Z?d/e3d2e e3 de:fd3�Z@ d?dd#ddd#dd#dd4�d/e3d%e ee3e f d&e e< d'e<d(e ee3 d)e ee3ee3 f d*e<d2e e3 d+e<d-e ee3ee3ee3 f f de fd5�ZA d@d6e3d%e e d'e<d&e e< d+e<de fd7�ZB dAd8ed'e<d&e e< d+e<d-e ee3ee3ee3 f f de fd9�ZCd:ed;e de fd<�ZDd;e de fd=�ZEd;e dee3 de fd>�ZFy)Ba~ Backing implementation for InstallRequirement's various constructors The idea here is that these formed a major chunk of InstallRequirement's size so, moving them and support code dedicated to them outside of that class helps creates for better understandability for the rest of the code. These are meant to be used elsewhere within pip to create instances of InstallRequirement. � N)� Collection�Dict�List�Optional�Set�Tuple�Union)�Marker)�InvalidRequirement�Requirement)� Specifier)�InstallationError)�PyPI�TestPyPI)�Link)�Wheel)�ParsedRequirement)�InstallRequirement)�is_archive_file)�is_installable_dir)�get_requirement)�path_to_url)�is_url�vcs)�install_req_from_editable�install_req_from_line�parse_editable�path�returnc � � t j d| � }d }|r&|j d� }|j d� }||fS | }||fS )Nz^(.+)(\[[^\]]+\])$� � )�re�match�group)r �m�extras�path_no_extrass ��/builddir/build/BUILDROOT/alt-python312-pip-23.3.1-1.el8.x86_64/opt/alt/python312/lib/python3.12/site-packages/pip/_internal/req/constructors.py� _strip_extrasr* + sT � � ���&��-�A� �F�������������� �6�!�!� ���6�!�!� r'