File: //lib/python3/dist-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc
�
��hnp � �^ � d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl m
Z
mZ d dlm
Z
d dlmZ d dlmZ d dlmZ d dlmZmZmZ d d lmZmZ d d
lmZmZ d dlmZ d dl m!Z! d d
l"m#Z# d dl$m%Z% d dl&m'Z'm(Z( d dl)m*Z* d dl+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZA e3eB� ZC G d� de� ZD d-deEdeeF deeF deEdeeF d e
eF fd!�ZGdeeF deEd eEfd"�ZH d.d#eeE d$eeF d%eeF d&eeF d'eEd eEfd(�ZId)eJd*eEd+eEd eFfd,�ZKy)/� N)�
SUPPRESS_HELP�Values)�List�Optional)�
print_json)�
WheelCache)�
cmdoptions)�make_target_python)�RequirementCommand�warn_if_run_as_root�with_cleanup)�ERROR�SUCCESS)�CommandError�InstallationError)�
get_scheme)�get_environment)�InstallationReport)�get_build_tracker)�ConflictDetails�check_install_conflicts)�install_given_reqs)�InstallRequirement�check_legacy_setup_py_options)�WINDOWS��test_writable_dir)� getLogger)�check_externally_managed�
ensure_dir�get_pip_version�(protect_pip_from_modification_on_windows�write_output)�
TempDirectory)�running_under_virtualenv�virtualenv_no_global)�build� should_build_for_install_commandc � � e Zd ZdZdZdd�Zededee de
fd�� Zd e d
ede
ddfd�Zd
ee dee fd�Zdede ddfd�Zy)�InstallCommandaI
Install packages from:
- PyPI (and other indexes) using requirement specifiers.
- VCS project urls.
- Local project directories.
- Local or remote source archives.
pip also supports installing from "requirements files", which provide
an easy way to specify a whole environment to be installed.
a%
%prog [options] <requirement specifier> [package-index-options] ...
%prog [options] -r <requirements file> [package-index-options] ...
%prog [options] [-e] <vcs project url> ...
%prog [options] [-e] <local project path> ...
%prog [options] <archive url/path> ...�returnNc �� � | j j t j � � | j j t j � � | j j t j
� � | j j t j � � | j j t j � � | j j ddddd�� | j j ddd d
d d�� t j | j � | j j d
ddd�� | j j dddt �� | j j ddd
d d�� | j j ddd
d d�� | j j t j � � | j j ddddd�� | j j ddddd gd!�"� | j j d#d$dd%�� | j j d&d'd(dd)�� | j j t j � � | j j t j � � | j j t j � � | j j t j � � | j j t j � � | j j t j � � | j j t j"