
    <Bh,                    $   S r SSKJr  SSKrSSK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JrJrJr  SSKJrJrJrJr  SSKJrJr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/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:J;r;J<r<J=r=J>r>J?r?J@r@  SSKAJBrB  SSKAJCrD  SSKEJFrF  SSKGJHrH  SSKIJJrJ  SS KIJKrL  SS!KMJNrN  SS"KOJPrPJQrQ  SS#KRJSrSJTrT  SS$KUJVrVJWrW  SS%KXJYrY  SS&KZJ[r[J\r\  SS'K]J^r^J_r_  SS(K`JaraJbrbJcrcJdrd  SS)KeJfrfJgrgJhrh  \(       a  SS*K
Jiri  \" 5         \c=rjrk\rlS+ rm\=rnro\R                  rp\R                  rr\R                  rs\R                  rt\R                  ru\R                  rv\R                  rw\R                  rx\R                  rz\R                  r{\R                  r|\R                  r}S, r~S- rS. r\>r>\<r<\;r;\?rS/r\r\rSPS0 jr\8GR                  " S1S2S3\(S4S59  C(\8GR                  " S1S2S6\gS7S59  Cg\8" S1S2S8S59S9 5       r\8" S1S2S:S59 " S; S<5      5       r\8" S1S2S:S59 " S= S>5      5       r\8GR                  " S1S2S?\LS@S59  CLSQSA jrK\8GR                  " S1S2SBSS:S59  \8GR                  " S1S2SCSS:S59  \8" S1S2S:S59SD 5       r\8" S1S2S:S59SE 5       r       SRSF jr-SG r\8" S1S2SHS59SSSI j5       r\8" S1S2SHS59SJ 5       r\&(       a  \8" S1S2SHS59SK 5       rSTSL jrSTSM jrSN r      SUSO jrCg)Vz#Backported exports for conda-build.    )annotationsN)input)StringIO)TYPE_CHECKING   )
CondaError)EntityEncoder)DEFAULT_CHANNELSDEFAULT_CHANNELS_UNIXDEFAULT_CHANNELS_WINPREFIX_PLACEHOLDER)contextnon_x86_machinesreset_contextsys_rc_path)spec_from_linespecs_from_argsspecs_from_url)ArgumentParser)add_parser_channelsadd_parser_prefix)compat)on_win)win_path_to_unix)	_toposort)dist_str_in_index)	get_index)ProgressiveFetchExtract)delete_prefix_from_linked_data)Solver)cache_fn_url)
deprecated)CondaHTTPErrorCondaOSError	LinkError	LockErrorPaddingErrorPathNotFoundErrorUnsatisfiableError)TmpDownload)download)CondaSession)TemporaryDirectory)delete_trashrm_rf)lchmod)ACTIVE_SUBPROCESSESsubprocess_call)	untrackedwalk_prefix)Channelget_conda_build_local_urlDist)FileModePathType)VersionOrdernormalized_version)	MatchSpecResolveResolvePackageNotFoundUnsatisfiable)human_bytesunix_path_to_winurl_path)Anyc                     [         $ N)r
        -lib/python3.13/site-packages/conda/exports.py<lambda>rK   S   s    +rI   c                 4    [        [        R                  5      $ rG   )listr   channelsrH   rI   rJ   rK   rK   a   s    d7++,rI   c                 :    [        [        5       5      =(       d    / $ rG   )rM   r7   rH   rI   rJ   rK   rK   b   s    79:@b@rI   c                    [        U /5      $ rG   )r   )fns    rJ   rK   rK   c   s    --rI   Tc                     U S:X  a  SSK Jn  U$ g )Nplanr   )rS   ) rS   )namerS   s     rJ   __getattr__rV   o   s    v~ rI   z25.3z25.9r   z1Use `conda.common.path.win_path_to_unix` instead.)addendumrC   z1Use `conda.common.path.unix_path_to_win` instead.z#Use builtin `dict.items()` instead.c                8    [        U R                  " S0 UD65      $ )NrH   )iteritems)dkws     rJ   	iteritemsr]      s     "rI   zUnused.c                  &    \ rS rSrS rS rS rSrg)	Completer   c                "    U R                  5       $ rG   )
_get_itemsselfs    rJ   	get_itemsCompleter.get_items   s      rI   c                    g)NTrH   )rd   items     rJ   __contains__Completer.__contains__   s    rI   c                4    [        U R                  5       5      $ rG   )rY   re   rc   s    rJ   __iter__Completer.__iter__   s    DNN$%%rI   rH   N)__name__
__module____qualname____firstlineno__re   ri   rl   __static_attributes__rH   rI   rJ   r_   r_      s    !&rI   r_   c                      \ rS rSrSrg)InstalledPackages   rH   N)rn   ro   rp   rq   rr   rH   rI   rJ   rt   rt      s    rI   rt   move_to_trashz/Use `conda.gateways.disk.delete.rm_rf` instead.c                6    SSK Jn  U" U 5        [        U 5        g )Nr   r/   )gateways.disk.deleter0   r   )pathmax_retriestrashr0   s       rJ   r0   r0      s    +	$K"4(rI   KEYSKEYS_DIRc                    g rG   rH   _s    rJ   	hash_filer      s    rI   c                    g)NFrH   r   s    rJ   verifyr      s    rI   c           	     |    [        XX#XEU5      nUR                  5       Vs0 s H  n[        U5      U_M     sn$ s  snf rG   )
_get_indexvaluesr9   )	channel_urlsprependplatform	use_local	use_cacheunknownprefixindexprecs	            rJ   r   r      s@     xIE */8DJ888s   9c                 8   ^ SSK Jm   " U4S jS5      n U " 5       $ )Nr   PackageCacheDatac                  :   > \ rS rSrU 4S jrU 4S jrU 4S jrSrg)$package_cache.<locals>.package_cache   c                   > [        TR                  5       R                  [        U5      R	                  5       S 5      5      $ rG   )boolfirst_writablegetr9   to_package_refrd   distr   s     rJ   ri   1package_cache.<locals>.package_cache.__contains__   s7     //155d4j6O6O6QSWX rI   c                L   > S TR                  5       R                  5       5       $ )Nc              3  8   #    U  H  n[        U5      v   M     g 7frG   r8   ).0vs     rJ   	<genexpr><package_cache.<locals>.package_cache.keys.<locals>.<genexpr>   s     P%ODGG%Os   )r   r   )rd   r   s    rJ   keys)package_cache.<locals>.package_cache.keys   s!    P%5%D%D%F%M%M%OPPrI   c                r   > TR                  5       R                  [        U5      R                  5       5        g rG   )r   remover9   r   r   s     rJ   __delitem__0package_cache.<locals>.package_cache.__delitem__   s'    ++-44T$Z5N5N5PQrI   rH   N)rn   ro   rp   rq   ri   r   r   rr   r   s   rJ   package_cacher      s    	
	Q	R 	RrI   r   )core.package_cache_datar   )r   r   s    @rJ   r   r      s    9
R 
R ?rI   zUse `conda.activate` instead.c                l   [         R                  R                  [         R                  R                  U 5      5      [         R                  R                  [         R                  R                  U5      5      ;   a  g [        (       a  Sn[
        R                  " [        US9nOSn[         R                  n[         R                  R                  [         R                  R                  X5      5      (       d3  [         R                  " [         R                  R                  X5      5        [        XX45        g )Ncondabin)shellbin)osry   normcasenormpathr   	functoolspartialwin_conda_bat_redirectsymlinkisdirjoinmakedirs_symlink_conda_hlp)r   root_dirr   where
symlink_fns        rJ   symlink_condar      s     
ww((01RWW5E5E
"6  	v&&'=UK
ZZ
77==f455
BGGLL/0v;rI   c                   / SQn[         R                  R                  X5      n[         R                  R                  U5      (       d  [         R                  " U5        U H  n[         R                  R                  XU5      n[         R                  R                  XV5      n [         R                  R                  U5      (       a  [        U5        [         R                  R                  U5      (       d
  U" Xx5        M  M     g ! [         a}  n	[         R                  R                  U5      (       aS  U	R                  [        R                  [        R                  [        R                  [        R                  4;   a   S n	A	GM&  e S n	A	ff = f)N)condaactivate
deactivate)r   ry   r   r   r   lexistsr0   OSErrorerrnoEPERMEACCESEROFSEEXIST)
r   r   r   r   scriptsprefix_wheref	root_fileprefix_filees
             rJ   r   r      s    1G77<<.L77==&&
L!GGLL!4	ggll<3	ww{++k"77??;//92 0   	ww{++EKKu{{ELLQQ 	s    #AD
FA0FFFc           	     ^   SSK Jn   [        R                  " [        R                  R                  U5      5        [        R                  R                  US-   5      (       d-  [        US-   S5       nUR                  SU  S35        SSS5        U(       d  Sn[        R                  R                  U5      (       d  [        US5       nUR                  S	5        U R                  S
5      (       a/  UR                  SR                  X2   S   " U S-   5      5      5        O+UR                  SR                  X2   S   " U 5      5      5        SSS5        [        R                  " U5      R                   nXfS-  S-	  -  n[        R"                  " X5        gg! [         ak  nUR                  [        R                  :X  aG  [        R                  R                  [        R                  R                  U5      5      (       a   SnAGNe SnAff = f! , (       d  f       GN= f! , (       d  f       N= f)a  Special function for Windows XP where the `CreateSymbolicLink`
function is not available.

Simply creates a `.bat` file at `dst` which calls `src` together with
all command line arguments.

Works of course only with callable files, e.g. `.bat` or `.exe` files.
r   )_SHELLSNz.batwz@echo off
call "z" %*
zbash.exez#!/usr/bin/env bash 
r   z{} "$@"path_toz.exezsource {} "$@"i$     )utilsr   r   r   ry   dirnamer   r   r   r   isfileopenwriteendswithformatstatst_modechmod)srcdstr   r   excr   modes          rJ   r   r     s    	#	KK,- ww~~cFl++cFlC(A+C578 ) E ww~~c""c3101<<((GGI,,W^I-FsV|-TUVGG,33GN94Mc4RST   773<''DCZA%%DHHS #'  	yyELL(RWW]]277??3;O-P-P		 )(  s7   3F 1HBH
H	AHHH	
H
H,c                    SSK Jn  SSKJn  U" U 5      nUR                  R                  5       Vs0 s H  nU" U5      U_M     sn$ s  snf )z5Return a dictionary of the linked packages in prefix.r   
PrefixDatar8   )core.prefix_datar   models.distr9   _prefix_recordsr   )r   ignore_channelsr   r9   pdprefix_records         rJ   linked_datar   A  sR    ,!	F	B  //6688M 	]]*8  s   Ac                    SSK Jn  UR                  5       n[        XS9R	                  5       nUVVs1 s H  u  pVUR
                  U;   d  M  UiM     snn$ s  snnf )z.Return the Dists of linked packages in prefix.r   )PackageType)r   )models.enumsr   conda_package_typesr   rZ   package_type)r   r   r   r   ldr   
prefix_recs          rJ   linkedr   M  s`    )%99;	V	=	C	C	EB !# "D""&99 	 "  s   AAc                    SSK Jn  U" U 5      nUR                  UR                  S5      nUc  g[	        U5      R                  U5      (       a  U$ g)zs
Return the install metadata for a linked package in a prefix, or None
if the package is not linked in the prefix.
r   r   N)r   r   r   rU   r>   match)r   r   r   r   r   s        rJ   	is_linkedr   [  sL     -	F	BFF499d+M	4		}	-	-rI   c                    [        XX6US9$ )N)md5sha256size)	_download)urldst_pathsessionmd5sumurlstxtretriesr   r   s           rJ   r+   r+   m  s     SDIIrI   )rU   strreturnrE   )   T)rH   TNFFNNrG   )F)NNF   NN)__doc__
__future__r   r   r   r   builtinsr   ior   typingr   rT   r   auxlib.entityr	   base.constantsr
   r   r   r   base.contextr   r   r   r   
cli.commonr   r   r   cli.conda_argparser   cli.helpersr   r   commonr   common.compatr   common.pathr   common.toposortr   
core.indexr   r   r   r   r   r   r   
core.solver    core.subdir_datar!   deprecationsr"   
exceptionsr#   r$   r%   r&   r'   r(   r)   gateways.connection.downloadr*   r+   r   gateways.connection.sessionr,   gateways.disk.creater-   rx   r.   r0   rv   gateways.disk.linkr1   gateways.subprocessr2   r3   miscr4   r5   models.channelr6   r7   r   r9   r   r:   r;   models.versionr<   r=   resolver>   r?   r@   rA   r   rB   rC   rD   rE   NoPackagesFoundNoPackagesFoundErrornon_x86_linux_machinesget_default_urls_PREFIX_PLACEHOLDERprefix_placeholder	arch_nameanaconda_uploadbinstar_uploadbitsdefault_prefixdefault_python	envs_dirs	pkgs_dirsr   root_prefixr   root_writablesubdirconda_buildget_rc_urlsget_local_urlsload_condarcCondaFileNotFoundErrorPY3r  string_types	text_typerV   constantr]   r_   rt   r   r   r   r   r   r   r   r   r   rH   rI   rJ   <module>r>     s   * "   	      (   H G .  ! ) & ) / < <  * $   6 ? 5 4 . 8 & E ( >  , <  ; :  *@ ?&) + += = (	((||''''		%%	!!,@-	* 
	   

@  
  

@  

2

 FFY/& & 0& FFY/	 	 0	   

> )   FFFD9 E 
  FFJy I FFY/ 0 FFY/ 0
 9$ FF%DE< F<$ FF%DE F2 
)HI+  J+ \	
* 	
JrI   