1j/ d Z ddlZddlmZ ddlmZ ddlmZmZm Z m
Z
ddlmZ ddl
mZ ddlmZ dd lmZ dd
lmZmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlm Z ddl!m"Z" ddl#m$Z$m%Z%m&Z&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1 ej2 e3 Z4e1j5 e1j6 e1j7 gZ8dedefdZ9 G d de Z:dS )zContains the RequirementCommand base class.
This class is in a separate module so the commands that do not always
need PackageFinder capability don't unnecessarily import the
PackageFinder machinery and all its vendored dependencies, etc.
N)partial)Values)AnyListOptionalTuple)
WheelCache)
cmdoptions)IndexGroupCommand)SessionCommandMixin)CommandErrorPreviousBuildDirError)
LinkCollector)
PackageFinder)SelectionPreferences)TargetPython)
PipSession)BuildTracker)RequirementPreparer)install_req_from_editableinstall_req_from_line#install_req_from_parsed_requirementinstall_req_from_req_string)parse_requirements)InstallRequirement)BaseResolver)
TempDirectoryTempDirectoryTypeRegistry
tempdir_kindsfuncreturnc dt ddfddt dt dt t dt
t f fd}|S ) zNDecorator for common logic related to managing temporary
directories.
registryr! Nc F t D ]}| |d d S )NF)KEEPABLE_TEMPDIR_TYPES
set_delete)r# ts o/builddir/build/BUILD/cloudlinux-venv-1.0.11/venv/lib/python3.11/site-packages/pip/_internal/cli/req_command.pyconfigure_tempdir_registryz0with_cleanup..configure_tempdir_registry7 s4 ' * *A5)))) * * selfoptionsargsc | j J |j r | j | || S # t $ r | j w xY wN)tempdir_registryno_cleanr )r+ r, r- r) r s r( wrapperzwith_cleanup..wrapper; s $000 >&&t'<=== 4gt,,,$
'&t'<=== s 0 A)r RequirementCommandr r r r int)r r2 r) s ` @r( with_cleanupr5 2 sy
*-F *4 * * * * +19=c # Nr* c e Zd Zdededdf fdZededefd Ze d"d e
ded
edede
d
edee dedefd Ze d#dede
dedee d
edededededee deeedf defd Zdee dede
dedee f
dZede
ddfd Z d$deded ee dee de
f
d!Z xZS )%r3 r- kwr! Nc t j |i | | j t j d S r/ )super__init__cmd_opts
add_optionr
r1 )r+ r- r7 __class__s r( r: zRequirementCommand.__init__O sD $%"%%%
!4!6!677777r* r, c d| j v rdS dS )zEDetermines which resolver should be used, based on the given options.zlegacy-resolverlegacy
resolvelib)deprecated_features_enabledr, s r( determine_resolver_variantz-RequirementCommand.determine_resolver_variantT s CCC8|r* r temp_build_dir
build_trackersessionfinder
use_user_sitedownload_dir verbosityc X |j } | J d}
| | }|dk r&d|j v }|rt d n'd}
d}d|j v rt d t | |j ||j |j |||j ||j
||||
S ) zQ
Create a RequirementPreparer instance for the given parameters.
NFr@ z fast-depszpip is using lazily downloaded wheels using HTTP range requests to obtain dependency information. This experimental feature is enabled through --use-feature=fast-deps and it is not ready for production.Tz;fast-deps has no effect when used with the legacy resolver.) build_dirsrc_dirrI build_isolationcheck_build_depsrE rF progress_barrG require_hashesrH
lazy_wheelrJ legacy_resolver)pathrC features_enabledloggerwarningr rM rN rO rP rQ )
clsrD r, rE rF rG rH rI rJ temp_build_dir_pathrS resolver_variantrR s
r( make_requirement_preparerz,RequirementCommand.make_requirement_preparer\ s -1"...99'BB|++$(@@J
" #OJg666Q #)O%#3$5' -"1'!+
r* FTto-satisfy-onlypreparerwheel_cacheignore_installedignore_requires_pythonforce_reinstallupgrade_strategy
use_pep517py_version_info.c
d t t |j |
}| | }
|
dk r=ddl}|j j j j ||||||j
|||| | S ddl}|j j j j ||||||j
|||| | S )zF
Create a Resolver instance for the given parameters.
)isolatedrc r@ r N)r] rG r^ make_install_reqrH ignore_dependenciesr_ r` ra rb rd )
r r
isolated_moderC ,pip._internal.resolution.resolvelib.resolver _internal
resolutionr@ resolverResolverrh (pip._internal.resolution.legacy.resolverr? )rX r] rG r, r^ rH r_ r` ra rb rc rd rg rZ pips r(
make_resolverz RequirementCommand.make_resolver s $ #'*!
99'BB |++????=+6?HH!'!1+$+$?!1'= /!1 / I
8777}'.7@@#-' ' ;-#9+-+ A
r* c
g }|j D ]E}t |d||| D ].}t ||j d }| | /F|D ]E} t | d|j |j dt |dd }| | F|j D ]D} t | d|j |j t |dd }| | E|j
D ]l}t |||| D ]V}t ||j |j d|j r|j d nd
}| | Wmt d |D rd|_ |sy|j sr|j
skd| j i}
|j rAt# d
j di t' |
d |j t# dj di |
|S )zS
Parse command-line arguments into the corresponding requirements.
T)
constraintrG r, rF F)rf
user_suppliedNconfig_settings)
comes_fromrf rc rt ru )rt rf rc ru )rG r, rF )rf rc rt ru c 3 $ K | ]}|j V d S r/ )has_hash_options).0reqs r( z6RequirementCommand.get_requirements.. s% <<s#<<<<<