← Back
Editing: constructors.cpython-311.pyc
� �/�c�@ � � � 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 d8de1d"ee ee1f d#ee9 d$e9d%eee1ef d&e9d'e9d(e9d)eee1e1f defd*�Z:d+e1de9fd,�Z;de1d+e1dee1 fd-�Z<d+e1d.ee1 de7fd/�Z= d9d+e1d"ee e1ef d#ee9 d$e9d%eee1ef d&e9d.ee1 d'e9d)eee1e1f defd0�Z> d:d1e1d"ee d$e9d#ee9 d'e9d)eee1e1f defd2�Z? d;d3ed$e9d#ee9 d'e9d)eee1e1f defd4�Z@d5ed6edefd7�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)�Any�Dict�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 �@/usr/lib/python3/dist-packages/pip/_internal/req/constructors.py� _strip_extrasr) * sQ � � ��&��-�-�A� �F�� �������������������6�!�!� r&