
    q"h2                        S r SSKrSSKJr  SSKJr  SSKJrJrJ	r	J
r
  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSK!J"r"  SSK#J$r$J%r%J&r&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/  SSK0J1r1J2r2J3r3  \Rh                  " \55      r6\3Rn                  \3Rp                  \3Rr                  /r:S\S\4S jr; " S S\5      r<g)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)AnyListOptionalTuple)
WheelCache)
cmdoptions)IndexGroupCommand)SessionCommandMixin)CommandErrorPreviousBuildDirError)LinkCollector)PackageFinder)SelectionPreferences)TargetPython)
PipSession)BuildTracker)RequirementPreparer)install_req_from_editableinstall_req_from_line#install_req_from_parsed_requirementinstall_req_from_req_string)parse_dependency_groups)parse_requirements)InstallRequirement)BaseResolver)TempDirectoryTempDirectoryTypeRegistrytempdir_kindsfuncreturnc           	         ^ ^ S[         SS4S jmS[        S[        S[        [           S[
        [           4UU 4S jjnU$ )	zFDecorator for common logic related to managing temporary
directories.
registryr"   Nc                 B    [          H  nU R                  US5        M     g )NF)KEEPABLE_TEMPDIR_TYPES
set_delete)r$   ts     O/var/www/html/env/lib/python3.13/site-packages/pip/_internal/cli/req_command.pyconfigure_tempdir_registry0with_cleanup.<locals>.configure_tempdir_registry8   s    'A5) (    selfoptionsargsc                    > U R                   c   eUR                  (       a  T" U R                   5         T" XU5      $ ! [         a    T" U R                   5        e f = fN)tempdir_registryno_cleanr   )r-   r.   r/   r*   r!   s      r)   wrapperwith_cleanup.<locals>.wrapper<   sb     $$000&t'<'<=	t,,$ 	 't'<'<=	s	   > A)r   RequirementCommandr   r   r   r   int)r!   r4   r*   s   ` @r)   with_cleanupr8   3   sP    
*-F *4 * +19=c	#   Nr,   c                     ^  \ rS rSrS\S\SS4U 4S jjr\S\S\4S j5       r	\
  S S	\S\S
\S\S\S\S\\   S\S\4S jj5       r\
        S!S\S\S\S\\   S\S\S\S\S\S\\   S\\\S4      S\4S jj5       rS\\   S\S\S\S\\   4
S jr\S\SS4S j5       r  S"S\S\S\\   S\\   S\4
S jjrSrU =r$ )#r6   O   r/   kwr"   Nc                    > [         TU ]  " U0 UD6  U R                  R                  [        R
                  " 5       5        U R                  R                  [        R                  " 5       5        g r1   )super__init__cmd_opts
add_optionr
   dependency_groupsr3   )r-   r/   r;   	__class__s      r)   r>   RequirementCommand.__init__P   sK    $%"%  !=!=!?@  !4!4!67r,   r.   c                 &    SU R                   ;   a  gg)zEDetermines which resolver should be used, based on the given options.zlegacy-resolverlegacy
resolvelib)deprecated_features_enabledr.   s    r)   determine_resolver_variant-RequirementCommand.determine_resolver_variantV   s      C CCr,   temp_build_dirbuild_trackersessionfinderuse_user_sitedownload_dir	verbosityc	                    UR                   n	U	c   eSn
U R                  U5      nUS:X  a,  SUR                  ;   nU(       a  [        R	                  S5        O)Sn
SnSUR                  ;   a  [        R	                  S5        [        U	UR                  UUR                  UR                  UUUR                  UUR                  UUUU
UR                  S9$ )zA
Create a RequirementPreparer instance for the given parameters.
FrF   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_dirsrc_dirrP   build_isolationcheck_build_depsrL   rM   progress_barrN   require_hashesrO   
lazy_wheelrQ   legacy_resolverresume_retries)pathrI   features_enabledloggerwarningr   rT   rU   rV   rW   rX   r[   )clsrK   r.   rL   rM   rN   rO   rP   rQ   temp_build_dir_pathrZ   resolver_variantrY   s                r)   make_requirement_preparer,RequirementCommand.make_requirement_preparer^   s     -11"...99'B|+$(@(@@J" #OJg666Q #)OO%#33$55' --"11'!+"11
 	
r,   preparerwheel_cacheignore_installedignore_requires_pythonforce_reinstallupgrade_strategy
use_pep517py_version_info.c                    [        [        UR                  U
S9nU R                  U5      nUS:X  aO  SSKnUR
                  R                  R                  R                  R                  UUUUUUR                  UUUU	US9$ SSKnUR
                  R                  R                  R                  R                  UUUUUUR                  UUUU	US9$ )z6
Create a Resolver instance for the given parameters.
)isolatedrk   rF   r   N)re   rN   rf   make_install_reqrO   ignore_dependenciesrg   rh   ri   rj   rl   )r   r   isolated_moderI   ,pip._internal.resolution.resolvelib.resolver	_internal
resolutionrF   resolverResolverrp   (pip._internal.resolution.legacy.resolverrE   )r`   re   rN   r.   rf   rO   rg   rh   ri   rj   rk   rl   ro   rb   pips                  r)   make_resolver RequirementCommand.make_resolver   s    $ #'**!

 99'B |+?==++66??HH!'!1+$+$?$?!1'= /!1 / I   	8}}''..77@@#-' ' ; ;-#9+-+ A 
 	
r,   c                 .   / nUR                    H=  n[        USUUUS9 H)  n[        UUR                  SS9nUR	                  U5        M+     M?     U HA  n	[        U	SUR                  UR                  S[        USS5      S9nUR	                  U5        MC     UR                  (       aM  [        UR                  5       H4  n	[        U	UR                  UR                  SS9nUR	                  U5        M6     UR                   H@  n	[        U	SUR                  UR                  [        USS5      S	9nUR	                  U5        MB     UR                   Hr  n[        XcX$S
9 Ha  n[        UUR                  UR                  SUR                  (       a  UR                  R                  S5      OSS9nUR	                  U5        Mc     Mt     [!        S U 5       5      (       a  SUl        U(       d  UR                  (       d  UR                  (       d  UR                  (       dv  SU R$                  0n
UR&                  (       a<  [)        SR*                  " S0 [-        U
SR/                  UR&                  5      S9D65      e[)        SR*                  " S0 U
D65      eU$ )zC
Parse command-line arguments into the corresponding requirements.
T)
constraintrN   r.   rM   F)rn   user_suppliedNconfig_settings)
comes_fromrn   rk   r}   r~   )rn   rk   r}   )r}   rn   rk   r~   )rN   r.   rM   )rn   rk   r}   r~   c              3   8   #    U  H  oR                   v   M     g 7fr1   )has_hash_options).0reqs     r)   	<genexpr>6RequirementCommand.get_requirements.<locals>.<genexpr>  s     <|##|s   namezXYou must give at least one requirement to {name} (maybe you meant "pip {name} {links}"?) )linkszHYou must give at least one requirement to {name} (see "pip help {name}") )constraintsr   r   rq   appendr   rk   getattrrA   r   r   	editablesr   requirementsr.   getanyrX   r   
find_linksr   formatdictjoin)r-   r/   r.   rN   rM   r   filename
parsed_req
req_to_addr   optss              r)   get_requirements#RequirementCommand.get_requirements   s    24++H0
 A$22"'

 ##J/ , C. .."--" '1BD IJ 
+  $$.w/H/HI8$22&11"&	
 ##J/ J $$C2" .."-- '1BD IJ 
+ %  ,,H0
 A$22&11"& &-- #**../@A!

 ##J/ -$ <|<<<%)G"   ##((DII&D!!">>DfE t388G4F4F+GH  #..4f5 =7;= 
 r,   c                 v    U R                   nUR                  5       nU(       a  [        R                  U5        gg)z5
Trace basic information about the provided objects.
N)search_scopeget_formatted_locationsr^   info)rN   r   	locationss      r)   trace_basic_info#RequirementCommand.trace_basic_info6  s1     ** 88:	KK	" r,   target_pythonc                     [         R                  " X!S9n[        SUR                  UR                  UR
                  US9n[        R                  " UUUS9$ )z
Create a package finder appropriate to this requirement command.

:param ignore_requires_python: Whether to ignore incompatible
    "Requires-Python" values in links. Defaults to False.
rH   T)allow_yankedformat_controlallow_all_prereleasesprefer_binaryrh   )link_collectorselection_prefsr   )r   creater   r   prer   r   )r-   r.   rM   r   rh   r   r   s          r)   _build_package_finder(RequirementCommand._build_package_finderA  s[     '--gG."11")++!//#9
 ##)+'
 	
r,   r   )Nr   )NFTFFzto-satisfy-onlyNN)NN) __name__
__module____qualname____firstlineno__r   r>   staticmethodr   strrI   classmethodr   r   r   r   boolr   r7   r   rc   r	   r   r   ry   r   r   r   r   r   r   __static_attributes____classcell__)rB   s   @r)   r6   r6   O   s&   8c 8 8 8 F s    '+5
%5
 5
 $	5

 5
 5
 5
 sm5
 5
 
5
 5
n  -1#!%', % 1%)598
%8
 8
 	8

 j)8
 8
 8
 !%8
 8
 8
 TN8
 "%S/28
 
8
 8
tc3ic c 	c
 c 
 	!cJ # #4 # # 1515

 
  -	

 !)
 

 
r,   r6   )=__doc__logging	functoolsr   optparser   typingr   r   r   r   pip._internal.cacher	   pip._internal.clir
   pip._internal.cli.index_commandr   r   pip._internal.exceptionsr   r   pip._internal.index.collectorr   "pip._internal.index.package_finderr   $pip._internal.models.selection_prefsr   "pip._internal.models.target_pythonr   pip._internal.network.sessionr   ,pip._internal.operations.build.build_trackerr    pip._internal.operations.preparer   pip._internal.req.constructorsr   r   r   r   &pip._internal.req.req_dependency_groupr   pip._internal.req.req_filer   pip._internal.req.req_installr   pip._internal.resolution.baser   pip._internal.utils.temp_dirr   r   r    	getLoggerr   r^   	BUILD_ENVEPHEM_WHEEL_CACHE	REQ_BUILDr&   r8   r6   r   r,   r)   <module>r      s       - - * ( = V H 7 < E ; 4 E @  K 9 < 6  
		8	$ ## s s 8L
* L
r,   