Uname : Linux premium36.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Soft : LiteSpeed
Ip : 198.54.115.237
Port : 443
~
/
opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
pip
/
_internal
/
req
/
__pycache__
[ HOME ]
Exec
Submit
constructors.cpython-312.pyc
� p�/i�H � �� � d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl m Z ddlmZ ddl mZmZ ddlmZ dd lmZ dd lmZmZ ddlmZ ddlmZ dd lmZ ddlmZ ddlm Z ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) g d�Z* ejV e,� Z-ej\ j_ � Z0d/d�Z1d0d�Z2d1d�Z3d2d�Z4d2d�Z5d2d�Z6d3d�Z7d4d�Z8 e d�� G d� d � � Z9d5d!�Z: d6d"dd"d"d"dd#� d7d$�Z;d8d%�Z<d9d&�Z=d:d'�Z> d6d"dd"dd"dd(� d;d)�Z? d< d=d*�Z@ d> d?d+�ZA d@d,�ZBdAd-�ZC dBd.�ZDy)Ca~ 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. � )�annotationsN)� Collection)� dataclass)�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_editablec � � t j d| � }d }|r4|j d� j � }|j d� }||fS | }||fS )Nz^(.+)(\[[^\]]+\])$� � )�re�match�group�rstrip)�path�m�extras�path_no_extrass �M/opt/hc_python/lib/python3.12/site-packages/pip/_internal/req/constructors.py� _strip_extrasr&