+
    :1jS                       R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^RI
HtHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHtHt ^RIHt ^RIHt ^RIHt ^RIHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/ ^RI0H1t1H2t2 ^RI3H4t4 ^RI5H6t6H7t7H8t8 ^RI9H:t: ^RI;H<t< ^RI=H>t> ^RI?H@t@ ^RIAHBtBHCtC ^RIDHEtE ^RIEHFtF ^RIGHHtH ]! ]I4      tJ]P                  ! RRR]! R4      RR 7       R! R" ltLR5R# ltMR6R$ ltNR% R& ltO ! R' R(4      tP ! R) R*4      tQR7R+ R, lltRR- R. ltSR7R/ ltTR0 tUR1 tVR8R2 R3 lltWR6R4 ltXR# )9zConda package installation logic.

Core logic for `conda [create|install|update|remove]` commands.

See conda.cli.main_create, conda.cli.main_install, conda.cli.main_update, and
conda.cli.main_remove for the entry points into this module.
)annotationsN)	getLogger)abspath)Path)REPODATA_FNUpdateModifier)context)DEFAULT_CONDARC_FILENAME)NULL)Index)PrefixSetupUnlinkLinkTransaction)
PrefixData)diff_for_unlink_link_precs)
deprecated)CondaExitZeroCondaImportErrorCondaIndexErrorCondaSystemExitCondaUpdatePackageErrorCondaValueError"DirectoryNotACondaEnvironmentError
DryRunExitInvalidInstallerNoBaseEnvironmentErrorPackageNotInstalledErrorPackagesNotFoundErrorPackagesNotFoundInChannelsErrorPackagesNotFoundInPrefixErrorResolvePackageNotFoundSpecsConfigurationConflictErrorUnsatisfiableError)delete_trashpath_is_clean)History)_get_best_prec_match	clone_envinstall_explicit_packages)all_channel_urls)Environment)	MatchSpec)PrefixGraph)
confirm_ynget_spinner)common)check_non_admin)set_keysz26.9z27.3	stderrlogzconda.stderrz,Use `conda.gateways.streams.stderr` instead.)addendumc                    V ^8  d   QhRRRR/# )   specs	list[str]returnint )formats   "1lib/python3.14/site-packages/conda/cli/install.py__annotate__r<   K   s      I C     c                   Wn         VP                  RR4      V n        VP                  RR4      V n        VP                  RR4      V n        VP                  RR4      V n        VP                  RR4      V n        VP                  RR4      V n        VP                  R	R4      V n        VP                  R
R4      V n	        VP                  RR4      V n
        VP                  R^ 4      V n        VP                  RR4      V n        VP                  R. 4      V n        VP                  RR4      V n        VP                  R\        4      V n        \#        V R4      # )a!  Reinstall packages using conda install.

Helper for health fixes that need to reinstall packages.

:param args: Parsed arguments namespace
:param specs: Package specs to reinstall
:param kwargs: Override default install options (e.g., force_reinstall=True)
:return: Exit code from install
channelNoverride_channelsFforce_reinstallsatisfied_skip_solveupdate_deps	only_depsno_depsprunefreeze_installedsolver_retries	use_localfilerepodata_fnsupdate_modifier)packagesgetr?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r
   rL   install)argsr5   kwargss   &&,r;   reinstall_packagesrR   K   s     M::i.DL#ZZ(;UCD!::&7?D &

+A5 IDzz-7DZZU3DN::i/DLGU+DJ"JJ'95AD **%5q9DZZU3DN

62&DI

>48D!::&7>D4r=   c                   \         P                  V 9   d   \        \        V 4      4      pM\        P                  ! V 4      pVP                  4        \        VP                  4      pV'       g   \        R V 24       \        RV 24       \        WaV'       * W4R7      w  rxV'       d&   \        P                  ! V\        V4      VVR7       R# R# )zSource:      zDestination: )verbosequiet
index_args)actionsuntracked_files
src_prefix
dst_prefixN)ossepr   r   	from_nameassert_environmentstrprefix_pathprintr&   r.   stdout_json_successlist)	src_argrZ   jsonrU   rV   source_prefix_datarY   rW   rX   s	   &&&&&    r;   clonerg   h   s    	vv'(89'11':))+'334Jj\*+j\*+(D G "" 1!!		
 r=   c                X     \        V 4      #   \         d    \        R T  R2T4      hi ; i)z expected revision number, not: '')r8   
ValueErrorr   )argre   s   &&r;   get_revisionrl      s9    O3x O @QGNNOs   
 )c                   V ^8  d   QhRR/# )r4   r7   zdict[str, any]r9   )r:   s   "r;   r<   r<      s      N r=   c                `    R\         P                  RV P                  '       * RV P                  /# )z}Returns a dict of args required for fetching an index
:param args: The args provided by the cli
:returns: dict of index args
channel_urlsprependrI   )r   channelsr@   rI   rP   s   &r;   get_index_argsrs      s2     	(( 	t---T^^ r=   c                  (    ] tR t^tR tR tR tRtR# )TryRepodatac                	B    Wn         W n        W0n        W@n        WPn        R # N)notify_successrepodatalast_repodatarV   allowed_errors)selfrx   ry   rz   rV   r{   s   &&&&&&r;   __init__TryRepodata.__init__   s      - *$,r=   c                	    V P                   # rw   )ry   r|   s   &r;   	__enter__TryRepodata.__enter__   s    }}r=   c                	R   V'       g   V P                  4        \        W P                  4      '       d1   V P                  V P                  8w  d   \        VR R4      '       d   R# \        V\        4      '       d.   \        VP                  \        \        P                  4      4      hR# )allow_retryTN)rx   
isinstancer{   ry   rz   getattrr   r   _formatted_chainsr(   r   rq   )r|   exc_type	exc_value	tracebacks   &&&&r;   __exit__TryRepodata.__exit__   s    !$ y"5"566$"4"44	=$77	#9::1++ !1!12  ;r=   )r{   rV   rz   rx   ry   N)__name__
__module____qualname____firstlineno__r}   r   r   __static_attributes__r9   r=   r;   ru   ru      s    -r=   ru   c                  ,    ] tR t^tRR ltR tR tRtR# )	Repodatasc                	T    Wn         W n        R V n        \        \        .VO5V n        R# )FN)rK   rV   successr   r   r{   )r|   rK   rV   allows_errorss   &&&&r;   r}   Repodatas.__init__   s.    ($"!
 
r=   c              #  	   "   V P                    FX  p\        V P                  VV P                   R,          V P                  V P                  4      x  V P
                  '       g   KW   R# 	  R# 5i)   N)rK   ru   succeedrV   r{   r   )r|   ry   s   & r;   __iter__Repodatas.__iter__   sX     ))H!!"%##  ||| *s   AA-&A-c                	    R V n         R# )TN)r   r   s   &r;   r   Repodatas.succeed   s	    r=   )r{   rV   rK   r   N)r9   )r   r   r   r   r}   r   r   r   r9   r=   r;   r   r      s    

r=   r   c                    V ^8  d   QhRRRR/# )r4   prefixr_   commandr9   )r:   s   "r;   r<   r<      s     , ,S ,3 ,r=   c                   \         P                  ! 4        \        4        \        V 4      p\         P                  '       d"   VP                  4       '       d   \        R4      hVR9   d<    VP                  4        \         P                  '       d   VP                  4        R# R# R#   \         dQ   pT\        \         P                  4      8X  d   \        4       Th\        T 4       \        T 4      '       g   h  Rp?LRp?ii ; i)a  Executes a set of validations that are required before any installation
command is executed. This includes:
  * ensure the configuration is valid
  * ensuring the user in not an admin
  * ensure the user is not forcing 32bit installs in the root prefix

:param prefix: The prefix where the environment will be created
:param command: Type of operation being performed
:raises: error if the configuration for the install is bad
z*cannot use CONDA_FORCE_32BIT=1 in base envN)rO   updateremove)r   validate_configurationr/   r   force_32bitis_baser   assert_writabler   conda_prefixr   r"   r#   protect_frozen_envsassert_not_frozen)r   r   prefix_dataexcs   &&  r;   validate_install_commandr      s     ""$V$K{2244JKK11	'') &&&))+ ' 2 2 	j)=)=>>,.C7  (( )		s   *B& &D1AC<<Dc                    V ^8  d   QhRRRR/# )r4   r   r_   r5   r6   r9   )r:   s   "r;   r<   r<     s     > >c >) >r=   c                    \        V 4      pV Fb  p\        V4      pVP                  '       g   \        V4      hVP	                  VP
                  R4      '       d   KO  \        WP
                  4      h	  R# )a5  Checks that each spec that is requested as an update exists in the prefix

:param prefix: The target install prefix
:param specs: List of specs to be updated
:raises CondaError: if there is an invalid spec provided
:raises PackageNotInstalledError: if the requested specs to install don't exist in the prefix
N)r   r*   is_name_only_specr   rN   namer   )r   r5   r   specs   &&  r;   ensure_update_specs_existr     s\     V$K%%%)$//tyy$//*699== r=   c                4   VR8H  pVR8H  pVR8H  p\         P                  p\        V R7      p\        WbR7       \         P                  '       d   RV n        \        P                  ! T VR8H  ;'       d    V P                  '       * R7      w  rV'       dr   VP                  '       d   \        VP                  4      hVP                  P                  \        P                  8w  d"   \        VP                   VP"                  R7       \%        VP                  4      ^ 8  d;   \%        VP"                  4      ^ 8X  d!   \'        VP                  VP                   4      # V P
                  p
V
'       g    \)        VP                  P
                  4      p
\*        V
9  d   V
P-                  \*        4       \/        V R\0        4      \        P2                  \        P4                  39  ;'       d    V'       * pV'       d'   V P                  \0        8X  d   \        P2                  pMVP                  P                  pVP                  P6                  p\9        V
V\:        \<        \>        34       F  pT;_uu_ 4       p\         P@                  PC                  4       pV! VVP                  PD                  \         PF                  VP"                  VV PH                  R	7      p TPK                  TT\         PL                  ;'       g    \         PN                  T;'       g    WR,          8g  R
7      pRRR4       K  	  \a        XW`V4       VPb                  '       d   \         Pd                  '       g   \         Pf                  '       g   ^RI4H5p ^RI6H7p ^RI8H9p V	Pu                  4        UUu. uF  w  ppVPb                  '       g   K  VV3NK   	  pppV F  w  ppVPb                  Pu                  4        F\  w  pp V! V4      pVR8X  d*   V! V4      pVPw                  V\)        V4      V VVR7       K?  VPw                  V\)        V4      V V4       K^  	  K  	  VPz                  '       d'   \}        V4      P                  VPz                  4       R# R#   \:        \<        3 d}   p\/        TRR4      '       g   ThT'       dY   TPK                  T\        P4                  \         PL                  ;'       g    \         PN                  YR,          8g  R
7      p Rp?ELThRp?i\P        \R        3 d    h \T         dQ   pTPV                  '       d"   \Q        TPX                  TPV                  4      Th\S        TPX                  TR7      ThRp?i\>         d[   p\/        TRR4      '       g   ThTPZ                  '       d-   RTPZ                  ^ ,          9   d   \]        \_        T4      4      hThRp?ii ; i  + '       g   i     EK  ; iu uppi   \x         d    T! RT RT R24      hi ; i)z>Logic for `conda install`, `conda update`, and `conda create`.creater   rO   rr   r   r   )rP   add_default_packages)r   r5   rL   )specs_to_addrepodata_fnr   )deps_modifierrL   rA   should_retry_solver   TNr   zcould not import)
CondaError)get_installer)get_pip_workdirpip)workdirzUnable to install package for z from environment file z@. Please ensure your dependencies file has the correct spelling.zrepodata.jsonr   )@r   target_prefixrs   r   use_only_tar_bz2rK   r)   from_cli_with_file_envsno_default_packagesexplicit_packagesr   configrL   r   
UPDATE_ALLr   r   requested_packageslenr'   rc   r   appendr   r
   FREEZE_INSTALLEDUPDATE_SPECSr   r   r!   r    
SystemExitplugin_managerget_cached_solver_backendrq   subdirscmdsolve_for_transactionrA   forcer   r   r   ro   rM   rP   r   r_   
handle_txnexternal_packagesdry_rundownload_only r   env.installers.baser   env.pip_utilr   itemsrO   r   	variablesr   set_environment_env_vars)rP   parserr   newenvisupdate	isinstallr   rV   envfpath_envs_maprK   _should_retry_unfrozenrL   r   r   ry   solver_backendsolverunlink_link_transactioner   r   r   fpathfile_envexternal_envsinstaller_type	pkg_specs	installerr   s   &&&                           r;   rO   rO     s    F("H9$I""FT*J F<.%==$0QQ9Q9Q5QC    )#*?*?@@::%%)B)BB%SZZs?U?UV 3  !A%#c.D.D*E*J()>)>

KK$$LCJJ334,&K(
 	'.//1L1LM	N  * 
 T))T1(99**44JJ,,M 	<jI
 [H$33MMON#

## 33$F'*0*F*F"/$3$+$;$;$L$Lw}}.NN(2>N2N +G +' [p &f=
W___W=R=R=R!72 $2#7#7#9
#9x)) UH#9 	 

  -OE8-5-G-G-M-M-O)	 -n =I%."1%"8!))"DOT8W *  "))&$y/4R .P  -" }}}633CMMB { '(GH q-66G).4.J.J&3(6(C(C(/(?(?(P(P7==,4R8H,H	 /K /+ G35RS ( 	>>>9

ANN 8

6  q-66G6660AFF1I=*3q622Y [[t
  ( $88HH_`e_f gY Y s   /A#W!<RRW69W6-6W<%W<W	T	21T	$ T	W!
T	W	
W	*W	+AU6	6W	W	&W	+.W	W	W!!W3<Xc                    \         P                  p\        V 4      p\        VRR7       \	        V P                  V\         P
                  \         P                  VR7       R# )z:Executes an install of a new conda environment by cloning.r   r   )re   rU   rV   N)r   r   rs   r   rg   re   rU   )rP   r   r   rV   s   &&  r;   install_cloner     sF    ""F%J FH=	

\\mmr=   c                &   \         P                  p\        V 4      p\        VRR7       \         P                  '       d   RV n        \        V4       V P
                  pV'       g   \        \         P
                  4      p\        V9  d   VP                  \        4       \        WC4       F  pT;_uu_ 4       p\        RV R24      ;_uu_ 4        \        VR,          VR,          RVR,          VVR	7      pRRR4       \        V P                  4      p\        R
V 24      ;_uu_ 4        \        W(X4      p	RRR4       RRR4       K  	  \!        X	W RR7       R#   + '       g   i     Ll; i  + '       g   i     L?; i  + '       g   i     K  ; i)z1Install a previous version of a conda environmentrO   r   zCollecting package metadata ()ro   rp   NrI   )rq   rp   platformrI   r   r   zReverting to revision F)r   r   )r   r   rs   r   r   rK   r"   rc   r   r   r   r-   r   rl   revisionrevert_actionsr   )
rP   r   r   rV   rK   r   ry   indexrevision_idxr   s
   &&        r;   install_revisionr     s?   ""F%J FI>
 . $$LG001,&K( :[H<XJaHII'7&y1! )5! ( J (6L5l^DEE*8u*U' F! [ ;( &UC% JI FE! [[s<   6E?'E53E?(E,5E?E)$E?,E<7E??Fc                   V ^8  d   QhRR/# )r4   r   zIndex | Noner9   )r:   s   "r;   r<   r<     s     '( '(| '(r=   c                  a \        V 4      pVP                  4       P                  4       p VP                  V4       Uu0 uF  p\        P
                  ! V4      kK  	  ppTe   TP                  RR7       \        4       p\        4       pT F  o\        ;QJ d%    . T3R lTP                  4        4       F  NK  	  5M! T3R lTP                  4        4       4      p	T	'       g   TP                  S4       Kl  \        T	4      ^8  d   TP                  \        T	4      4       K  TP                  T	^ ,          4       K  	  T'       d3   \        T\        \         P"                  \         P$                  4      4      h\        \'        T4      P(                  4      p
\+        Y
4      w  r\-        YTRTR4      p\/        T4      # u upi   \         d    \        R T,          4      hi ; i)zno such revision: %dTr   c              3  Z   <"   T F   pSP                  V4      '       g   K  Vx  K"  	  R # 5irw   )match).0precr   s   & r;   	<genexpr>!revert_actions.<locals>.<genexpr>  s     J~tD9Idd~s   +
+r9   )r$   get_requested_specs_mapvalues	get_stater*   from_dist_str
IndexErrorr   reloadsettupleaddr   r%   r   r(   r   rq   r   r+   graphr   r   r   )r   r   r   huser_requested_specsdist_strtarget_statenot_found_in_index_specs
link_precsprecsfinal_precsunlink_precssetupr   s   &&&          @r;   r   r     s   A 446==?A>?kk(>S
>S(I##H->S 	 
 D!"uJJu||~JJu||~JJ$((.Z!^NN/67NN58$   -$W--w?
 	

 J/556K9&NLj">RTVWE '';
  A4x?@@As   G F?G ?G G"c                   V P                   '       dd   V'       d   \        VP                  VR 7      hV'       g=   \        P                  '       d   \
        P                  ! RR7       R# \        R4       R# \        P                  '       g   V P                  4        \        4        MO\        P                  '       d:   V P                  4       ^ ,          p\
        P                  ! WRR7       \        4       h V P                  4        \        P                  '       d   \        R4      hV P!                  4        T'       dT   \        P&                  \        P(                  ! 4       8w  d,   \+        R	\        P&                  3\-        T\.        4      R
7       \        P                  '       d1   T P                  4       ^ ,          p\
        P                  ! YR7       R# R#   \"         d   p\%        RT4      hRp?ii ; i)r   z)All requested packages already installed.)messagez-
# All requested packages already installed.
NT)r   rW   r   zUPackage caches prepared. UnlinkLinkTransaction cancelled with --download-only option.Exitingsubdir)path)r   rW   )nothing_to_dor   package_namesr   re   r.   rb   ra   print_transaction_summaryr,   r   _make_legacy_action_groupsr   download_and_extractr   r   executer   r   r  _native_subdirr0   r   r	   )r   r   rP   r   	remove_oprW   r   s   &&&&&  r;   r   r   
  sh   ,,,/0B0B6RR|||**G
  GH<<<99;	)DDFqI""&4Pl
,446   *  	 '')
 >>W33557>>*&":;
 |||)DDFqI""&B   ,i++,s   7%G G G7&G22G7)FFN)F)rO   )r   N)Y__doc__
__future__r   r[   loggingr   os.pathr   pathlibr   base.constantsr   r   base.contextr   common.configurationr	   common.constantsr
   
core.indexr   	core.linkr   r   core.prefix_datar   
core.solver   deprecationsr   
exceptionsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   gateways.disk.deleter"   r#   historyr$   miscr%   r&   r'   models.channelr(   models.environmentr)   models.match_specr*   models.prefix_graphr+   	reportersr,   r-   r   r.   r/   main_configr0   r   logconstantrR   rg   rl   rs   ru   r   r   r   rO   r   r   r   r   r9   r=   r;   <module>r@     s    # 	    # ; #  : ) 3 %    & ?  
 . , ) - /  # ! 
  

n;:
4O + +\ 6,@>"KC\"+D\'(T,Cr=   