Edit File: constructors.cpython-311.pyc
� Q�d�@ � � � d Z ddlZddlZddlZddlmZmZmZmZm Z m Z ddlmZ ddl mZmZ ddlmZ ddlmZ ddlmZmZ dd lmZ dd lmZ ddlmZ ddlmZ dd lm Z ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) g d�Z* ej+ e,� � Z-ej. �/ � � Z0de1de e1ee1 f fd�Z2dee1 dee1 fd�Z3de1de ee1 e1ee1 f fd�Z4de1ddfd�Z5de1de1fd�Z6 G d� d� � Z7de1de7fd �Z8 d;dd!ddd!d!d!dd"�de1d#ee ee1f d$ee9 d%e9d&eee1 d'eee1ee1 f d(e9d)e9d*e9d+eee1e e1ee1 f f defd,�Z:d-e1de9fd.�Z;de1d-e1dee1 fd/�Z<d-e1d0ee1 de7fd1�Z= d;dd!ddd!dd!dd2�d-e1d#ee e1ef d$ee9 d%e9d&eee1 d'eee1ee1 f d(e9d0ee1 d)e9d+eee1e e1ee1 f f defd3�Z> d<d4e1d#ee d%e9d$ee9 d)e9defd5�Z? d=d6ed%e9d$ee9 d)e9d+eee1e e1ee1 f f defd7�Z@d8ed9edefd:�ZAdS )>a~ 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)�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+|� d� � }|� d� � }n| }||fS )Nz^(.+)(\[[^\]]+\])$� � )�re�match�group)r �m�extras�path_no_extrass �o/builddir/build/BUILD/cloudlinux-venv-1.0.2/venv/lib/python3.11/site-packages/pip/_internal/req/constructors.py� _strip_extrasr) * sQ � � ��&��-�-�A� �F�� �������������������6�!�!� r&