
    4Քh3                       S r SSKJr  SSK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  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/J0r0  SSK1J2r2J3r3J4r4  \Rj                  " \65      r7\4Rp                  \4Rr                  \4Rt                  /r;S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.
    )annotationsN)partial)Values)Any)#SubprocessBuildEnvironmentInstaller)
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_kindsc                6   ^ ^ SS jm        SUU 4S jjnU$ )zFDecorator for common logic related to managing temporary
directories.
c                B    [          H  nU R                  US5        M     g )NF)KEEPABLE_TEMPDIR_TYPES
set_delete)registryts     U/var/www/auris/envauris/lib/python3.13/site-packages/pip/_internal/cli/req_command.pyconfigure_tempdir_registry0with_cleanup.<locals>.configure_tempdir_registry;   s    'A5) (    c                   > 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   )selfoptionsargsr'   funcs      r&   wrapperwith_cleanup.<locals>.wrapper?   sb     $$000&t'<'<=	t,,$ 	 't'<'<=	s	   > A)r$   r   returnNone)r.   RequirementCommandr/   r   r0   z	list[Any]r4   z
int | None )r1   r2   r'   s   ` @r&   with_cleanupr8   6   s9    
* +19B	   Nr)   c                  *  ^  \ rS rSrS
U 4S jjr\SS j5       r\  S                 SS jj5       r\        S                       SS jj5       r	          SS jr
\SS j5       r  S         SS jjrS	rU =r$ )r6   R   c                   > [         TU ]  " U0 UD6  U R                  R                  [        R
                  " 5       5        U R                  R                  [        R                  " 5       5        g r+   )super__init__cmd_opts
add_optionr	   dependency_groupsr-   )r.   r0   kw	__class__s      r&   r=   RequirementCommand.__init__S   sK    $%"%  !=!=!?@  !4!4!67r)   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_variantY   s      C CCr)   c	                   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        [        S0 SU	_SUR                  _S	U_S
UR                  _S[        U5      _SUR                  _SU_SU_SUR                  _SU_SUR                  _SU_SU_SU_SU
_SUR                  _6$ )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_dirdownload_dirbuild_isolationbuild_isolation_installercheck_build_depsbuild_trackersessionprogress_barfinderrequire_hashesuse_user_site
lazy_wheel	verbositylegacy_resolverresume_retriesr7   )pathrI   features_enabledloggerwarningr   rM   rO   r   rQ   rT   rV   r[   )clstemp_build_dirr/   rR   rS   rU   rW   rN   rY   temp_build_dir_pathrZ   resolver_variantrX   s                r&   make_requirement_preparer,RequirementCommand.make_requirement_preparera   s[    -11"...99'B|+$(@(@@J" #OJg666Q # 
)
OO
 &
 $33	

 'J&&Q
 %55
 (
 
 !--
 
 #11
 (
 "
  
 ,
  #11!
 	
r)   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.
)isolated
use_pep517rF   r   N)preparerrU   wheel_cachemake_install_reqrW   ignore_dependenciesignore_installedignore_requires_pythonforce_reinstallupgrade_strategypy_version_info)r   r   isolated_moderI   ,pip._internal.resolution.resolvelib.resolver	_internal
resolutionrF   resolverResolverrl   (pip._internal.resolution.legacy.resolverrE   )r`   ri   rU   r/   rj   rW   rm   rn   ro   rp   rh   rq   rk   rc   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)
constraintrU   r/   rS   F)rg   user_suppliedNconfig_settings)
comes_fromrg   rh   r~   r   )rg   rh   r~   )r~   rg   rh   r   )rU   r/   rS   )rg   rh   r~   r   c              3  8   #    U  H  oR                   v   M     g 7fr+   )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}")r7   )constraintsr   r   rr   appendr   rh   getattrr@   r   r   	editablesr   requirementsr/   getanyrV   r   
find_linksr   formatdictjoin)r.   r0   r/   rU   rS   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)rU   r   	locationss      r&   trace_basic_info#RequirementCommand.trace_basic_info:  s1     ** 88:	KK	" r)   c                    [         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_binaryrn   )link_collectorselection_prefstarget_python)r   creater   r   prer   r   )r.   r/   rS   r   rn   r   r   s          r&   _build_package_finder(RequirementCommand._build_package_finderE  s[     '--gG."11")++!//#9
 ##)+'
 	
r)   r7   )r0   r   rA   r   r4   r5   )r/   r   r4   str)Nr   )ra   r   r/   r   rR   r   rS   r   rU   r   rW   boolrN   z
str | NonerY   intr4   r   )NFTFFzto-satisfy-onlyNN)ri   r   rU   r   r/   r   rj   zWheelCache | NonerW   r   rm   r   rn   r   ro   r   rp   r   rh   bool | Nonerq   ztuple[int, ...] | Noner4   r   )
r0   z	list[str]r/   r   rU   r   rS   r   r4   zlist[InstallRequirement])rU   r   r4   r5   )NN)
r/   r   rS   r   r   zTargetPython | Nonern   r   r4   r   )__name__
__module____qualname____firstlineno__r=   staticmethodrI   classmethodrd   rz   r   r   r   __static_attributes____classcell__)rB   s   @r&   r6   r6   R   s   8    $(6
%6
 6
 $	6

 6
 6
 6
 !6
 6
 
6
 6
p  *.#!%', % 1"&268
%8
 8
 	8

 '8
 8
 8
 !%8
 8
 8
  8
 08
 
8
 8
tcc c 	c
 c 
"cJ # # .2.2

 
 +	

 !,
 

 
r)   r6   )r1   r   r4   r   )>__doc__
__future__r   logging	functoolsr   optparser   typingr   pip._internal.build_envr   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   r7   r)   r&   <module>r      s    #     G * ( = V H 7 < E ; 4 E @  K 9 < 6  
		8	$ ## 8M
* M
r)   