
    \Zi                       % S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	J
r
JrJrJr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JrJr  SSKJ r J!r!  SSK"J#r#  SSK$J%r&  SSK$J'r'J(r(J)r)  SSK*J+r+  SSK,J-r-J.r.J/r/J0r0J1r1J2r2  \(       a  SSK3J4r4J5r5  SSKJ6r6  \" \75      r8\-" 5       \0" 5       \2" S5      \2" S5      \2" S5      S.r9 " S S\Rt                  S9r;S0S jr<    S1S jr= " S S\;5      r> " S S \;5      r? " S! S"\;5      r@ " S# S$\;5      rA " S% S&\;5      rB " S' S(\;5      rC " S) S*\;5      rD\>\>\>\>\>\?\?\@\A\B\CS+.rES,\FS-'   S.\D0rGS/ rHg)2aN  Conda activate and deactivate logic.

Implementation for all shell interface logic exposed via
`conda shell.* [activate|deactivate|reactivate|hook|commands]`. This includes a custom argument
parser, an abstract shell class, and special path handling for Windows.

See conda.cli.main.main_sourced for the entry point into this module.
    )annotationsN)	getLogger)abspathbasenamedirnameexists
expanduser
expandvarsisdirjoin)Path)TYPE_CHECKING   )CONDA_PACKAGE_ROOT)Utf8NamedTemporaryFile)CONDA_ENV_VARS_UNSET_VARPACKAGE_ENV_VARS_DIRPREFIX_STATE_FILERESERVED_ENV_VARS)contextlocate_prefix_by_name)on_win)path_identity)paths_equalunix_path_to_winwin_path_to_unix)json)ActivateHelpArgumentErrorCondaValueErrorDeactivateHelpEnvironmentLocationNotFoundGenericHelp)CallableIterable)Anyhookcommands
reactivate)activate
deactivater'   r(   r)   c                     \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'    S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S9S:S jjrS;S jrS rS rS r	S r
S9S<S jjrS rS=S jrS>S jrS>S  jrS>S! jrS?S" jrS@S# jrS@S$ jrSAS% jrS& rSBS' jrSBS( jr      SCS) jrS* rS+ rS, rS- rS9S. jrS9S/ jrS9S0 jrS1 r S2 r!S3 r"S4 r#S5 r$S6 r%SDS7 jr&S8r'g)E
_ActivatorI   strpathsep_joinsepzDCallable[[str | Iterable[str] | None], str | tuple[str, ...] | None]path_conversionscript_extension
str | Nonetempfile_extensioncommand_joinunset_var_tmplexport_var_tmplpath_var_tmplset_var_tmplrun_script_tmplzPath | Nonehook_source_pathboolinline_hook_sourceneeds_line_ending_fixNc                :    Uc  S U l        g [        U5      U l        g N)tuple_raw_arguments)self	argumentss     .lib/python3.13/site-packages/conda/activate.py__init___Activator.__init__v   s    &/&7dU9=M    c                l   / n0 nUR                  5        H  u  pVUc  UR                  U5        M  XdU'   M!     U(       ac  [        R                  R                  5        H@  u  pVUc  UR                  U5        M  SU;   d  SU;   a  U R	                  U5      XE'   M<  XdU'   MB     OUR                  [        R                  5        [        R                  (       aR  UR                  5        VVs0 s H  u  pVUR                  5       U_M     nnnU Vs/ s H  oUR                  5       PM     nnXC4$ s  snnf s  snf )aV  
:param export_metavars: whether to export `conda_exe_vars` meta variables.
:param kwargs: environment variables to export.
    .. if you pass and set any other variable to None, then it
    emits it to the dict with a value of None.

:return: A dict of env vars to export ordered the same way as kwargs.
    And a list of env vars to unset.
/\)itemsappendr   conda_exe_vars_dictr2   extendenvvars_force_uppercaseupper)rD   export_metavarskwargs
unset_varsexport_varsnamevalues          rF   get_export_unset_vars _Activator.get_export_unset_varsy   s    
 "<<>KD}!!$'$)D!	 * &::@@B=%%d+E\TU](,(<(<U(CK%(-%  C g99: **BMBSBSBUVBU;44::<.BUKV3=>:4**,:J>&& W>s   )D+D1c                n   / UQSP7nU R                   R                  U5      n[        (       a&  U R                  [        :X  a  UR                  SS5      nUc  U$ U(       a1  [        SUSS9 nUR                  U5        S S S 5        UR                  $ [        5       e! , (       d  f       WR                  $ = f)N z

w+Fsuffixdelete)
r6   r   r   r2   r   replacer   writerW   NotImplementedError)rD   r(   extcontenttfs        rF   	_finalize_Activator._finalize   s    "X?r?##((2 6d**.>>oofd3G;N'SG2! H 77N%'' HG 77Ns   +B
B4c                    U R                   (       a  U R                  U R                  5      nOU R                  U R                  5      nU R	                  U R                  U5      U R                  5      $ rA   )stackbuild_stackenv_name_or_prefixbuild_activaterh   _yield_commandsr5   )rD   builder_results     rF   r*   _Activator.activate   s\    ::!--d.E.EFN!001H1HIN~~  0$2I2I
 	
rI   c                t    U R                  U R                  U R                  5       5      U R                  5      $ rA   )rh   ro   build_deactivater5   rD   s    rF   r+   _Activator.deactivate   2    ~~  !6!6!894;R;R
 	
rI   c                t    U R                  U R                  U R                  5       5      U R                  5      $ rA   )rh   ro   build_reactivater5   rt   s    rF   r)   _Activator.reactivate   rv   rI   c                ,   / nU R                  5       =n(       a  UR                  U5        U R                  (       ac  U R                  (       a*  UR                  U R                  R	                  5       5        O(UR                  U R
                  U R                  -  5        Uc  [        R                  (       d  U(       a#  UR                  S[        R                   S35        U R                  5       nUb  UR                  U5        SR                  U5      $ )Nzconda activate 'z'
r]   )_hook_preamblerN   r<   r>   	read_textr;   r   auto_activatedefault_activation_env_hook_postambler   )rD   r}   builderpreamble	postambles        rF   r'   _Activator.hook   s    **,,8,NN8$  &&t44>>@At33d6K6KKL W%:%:mNN-g.L.L-MSQR((*	 NN9%yy!!rI   c                    U R                  5         [        R                  R                  U R                  5        [        X R                  5      " 5       n[        R                  R                  U R                  5        U$ rA   )_parse_and_set_argsr   plugin_managerinvoke_pre_commandscommandgetattrinvoke_post_commands)rD   responses     rF   execute_Activator.execute   sV      " 	224<<@4.033DLLArI   c                     U R                   U-  $ rA   )r7   )rD   keys     rF   template_unset_var_Activator.template_unset_var   s    ""S((rI   c                "    U R                   X4-  $ rA   )r8   rD   r   rX   s      rF   template_export_var_Activator.template_export_var   s    ##sl22rI   c                "    U R                   X4-  $ rA   )r9   r   s      rF   template_path_var_Activator.template_path_var   s    !!SL00rI   c                "    U R                   X4-  $ rA   )r:   r   s      rF   template_set_var_Activator.template_set_var   s      C<//rI   c                     U R                   U-  $ rA   )r;   )rD   scripts     rF   template_run_script_Activator.template_run_script   s    ##f,,rI   c                   / n[         R                  R                  5        H  u  p#Uc"  UR                  U R	                  U5      5        M*  SS1R                  U5      (       a"  UR                  U R                  X#5      5        Md  UR                  U R                  X#5      5        M     U(       a(  U R                  R                  U5      U R                  -   $ g )NrK   rL   )
r   rO   rM   rN   r   intersectionr   r   r6   r   )rD   resultr   rX   s       rF   r{   _Activator._hook_preamble   s    !55;;=JC}d55c:;t))%00d44S@Ad66sBC > $$))&1D4E4EEErI   c                    g rA    rt   s    rF   r   _Activator._hook_postamble   s    rI   c                N  ^^	 U R                   =(       d    S /tmnSm	[        U	4S jU 5       5      n[        U5      [        U5      :g  n[        U4S jU 5       5      nT[        ;  a!  [        ST(       a  ST S3-   5      eS-   5      eU(       a	  [        T   eTR                  S5      (       d  TS	:X  a   UR                  S
5      nXE	 S[        l	        TS:X  a  [        R                  =(       a!    [        R                  [        R                  :*  U l         UR                  S5      n UR                  S5      nUS:  a  US:  a  [        ST-   5      eUS:  a	  SU l        XF	 US:  a	  SU l        XG	 [        U5      S:  a  [        TS-   [        U5      -   S-   5      eU(       a  US   U l        O.[        R                   U l        OU(       a  [        T SU S35      eTU l        g ! [         a    S[        l	         GN+f = f! [         a    Sn Nf = f! [         a    Sn Nf = f)N)z-hz--helpz/?c              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7frA   r   ).0arg
help_flagss     rF   	<genexpr>1_Activator._parse_and_set_args.<locals>.<genexpr>  s     PYcZ:OccYs   		c              3  H   >#    U  H  o(       d  M  UT:w  d  M  Uv   M     g 7frA   r   )r   r   r   s     rF   r   r     s     U]ccccWncc]s   
""	"zT'activate', 'deactivate', 'hook', 'commands', or 'reactivate' command must be given.z, not 'z'..r*   r'   z--devTFz--stackz
--no-stackr   z.cannot specify both --stack and --no-stack to r   z) does not accept more than one argument:
r]   z+ does not accept arguments
remainder_args: )rC   rB   lenlistBUILTIN_COMMANDSr   endswithindexr   dev
ValueError
auto_stackshlvlrk   r/   rm   r~   r   )
rD   rE   non_help_argshelp_requestedremainder_argsdev_idx	stack_idxno_stack_idxr   r   s
           @@rF   r   _Activator._parse_and_set_args   sO   "11;dV)+
PYPPY3}+==U]UU**)ELggYb,AW RUW  "7++J''7f+<#(..w7 #+"j  ++SASAS0SDJ*00;	"-33LA A~,!"3#DwN  A~!
"-q "
"0>"Q&#BC.)*   *8*;'*1*H*H')GGWWYZ  U  $#$  	  "!"s6   6G' H *H 'H ?H HHH$#H$c              #    #    [        UR                  S0 5      R                  5       5       H  u  p#U R                  X#5      v   M     UR                  SS5       H  nU R	                  U5      v   M     UR                  SS5       H  nU R                  U5      v   M     UR                  S0 5      R                  5        H  u  p#U R                  X#5      v   M     UR                  S0 5      R                  5        H  u  p#U R                  X#5      v   M     UR                  SS5       H  nU R	                  U5      v   M     g 7f)Nexport_pathdeactivate_scriptsr   rU   set_varsrV   activate_scripts)sortedgetrM   r   r   r   r   )rD   	cmds_dictr   rX   r   s        rF   ro   _Activator._yield_commands=  s     }b!A!G!G!IJJC**366 K  mm$8"=F**622 > ==r2C))#.. 3 $--
B7==?JC''33 @ $--r:@@BJC**366 C  mm$6;F**622 <s   EEc                &    U R                  US5      $ )NF_build_activate_stackrD   rm   s     rF   rn   _Activator.build_activateP  s    ))*<eDDrI   c                &    U R                  US5      $ )NTr   r   s     rF   rl   _Activator.build_stackS  s    ))*<dCCrI   c           	        U R                  U5      n[        [        R                  " SS5      R	                  5       =(       d    S5      n[        R                  " S5      nXS:X  a  US:  a  U R                  5       $ U R                  U5      nUS-   nU R                  U5      nU R                  X85      n	U R                  U5      R                  5        V
Vs0 s H  u  pU[        :w  d  M  X_M     nn
n[        U5      R                  [        R                  5      nU Vs/ s H#  n[        R                  " U5      X   :w  d  M!  UPM%     nnU(       a3  [        S[         R"                  S9  [        SU 3[         R"                  S9  U H"  n
[        R                  " U
5      US	U S
U
 3'   M$     US:X  a<  U R$                  " SU R'                  U R)                  U5      5      UUUU	S.UD6u  nnSnOU(       aH  U R$                  " SU R'                  U R)                  U5      5      UUUU	S.UDSU 3USU 3S0D6u  nnSnOQU R$                  " SU R'                  U R+                  XS5      5      UUUU	S.UDSU 3U0D6u  nnU R-                  U5      n0 n[.        R0                  (       a  U R3                  UU	5        UUUUUS.$ s  snn
f s  snf )NCONDA_SHLVLr\   r   CONDA_PREFIXr   z=WARNING: overwriting environment variables set in the machinefilezoverwriting variable __CONDA_SHLVL__)PATHr   r   CONDA_DEFAULT_ENVCONDA_PROMPT_MODIFIERr   CONDA_PREFIX_CONDA_STACKED_truerU   r   rV   r   r   )_resolve_prefixintosgetenvstriprx   _get_activate_scripts_default_env_prompt_modifier_get_environment_env_varsrM   r   setr   environprintsysstderrrY   r0   _add_prefix_to_path_replace_prefix_in_path_get_deactivate_scriptsr   	changeps1_update_prompt)rD   rm   rk   prefixold_conda_shlvlold_conda_prefixr   conda_shlvlconda_default_envconda_prompt_modifierrW   rX   env_varsclobber_varsclobber_varoverwritten_clobber_varsrV   rU   r   r   s                       rF   r    _Activator._build_activate_stackV  s+   
 %%&89 biir:@@BGaH99^4 %/A*=((**55f=%) --f5 $ 5 5f P  $==fEKKM
M00 DKM 	 
 8}11"**=  ,$
+yy%)>> + 	! $

 $OZZ )*B)CD3::V DBD))D/H~o%6av>? ! a&*&@&@ '&&t'?'?'GH#'"3&;' '#K "$&*&@&@ '&&t'?'?'GH#'"3&;' ' $O#457G$[M2F'#K "$&*&@&@ '&&001AJ $'"3&;' ' $O#457G'#K "&!=!=>N!O*?@ % &"4 0
 	
E
$
s   J>(J> KKc                V   SU l         [        R                  " S5      n[        [        R                  " SS5      R	                  5       =(       d    S5      nU(       a  US:  a  S0 0 SSS.$ U R                  U5      nU R                  U5      nUS-
  n0 nUS:X  a>  U R                  U R                  U5      5      nU R                  S US S S	9u  pSn
SnS
U0nGOUS::  a  [        S5      e[        R                  " SU-  5      nU(       d  [        S5      eU R                  U5      nU R                  X5      n
U R                  U5      nSU-  [        R                  ;   nSnSU-  /n	U(       a5  U R                  U R                  U5      5      nU	R                  SU-  5        O U R                  U R                  X5      5      nU R                  " SUUUU
S	.UD6u  nnU	U-  n	S
U0nU R!                  U5      n["        R$                  (       a  U R'                  Xj5        UR)                  5        Ht  n[        R                  " SU SU 35      =n(       a  UUU'   M-  ["        R*                  (       a!  U	R                  UR-                  5       5        Mc  U	R                  U5        Mv     U	UUUUUS.$ )NTr   r   r\   r   r   r   r   )r   r   r   r   r   z%'old_conda_shlvl' must be 2 or largerzCONDA_PREFIX_%dzThis should not happen! You may have non-consecutive `CONDA_PREFIX_<number> environment variables. Try restarting your shell and, if it persists, check your shell profile to see what may be adding a faulty CONDA_PREFIX_<number> environment variable.zCONDA_STACKED_%dr   r   )rU   r   rV   r   r   r   )_deactivater   r   r   r   r   r   r0   _remove_prefix_from_pathrY   r   r   r   r   rN   r   r   r   r   r   keysrQ   rR   )rD   r   r   r   old_conda_environment_env_varsnew_conda_shlvlr   new_pathrV   rU   r   r   r   
new_prefixr   new_conda_environment_env_varsold_prefix_stackedunset_vars2env_var
save_values                       rF   rs   _Activator.build_deactivate  s   99^4biir:@@BGaH?Q#6 !!&($&  "99:JK)-)G)G*
& *A-a((--.>?H '+&@&@!+"&&*	 'A '#K %'!!!8,K!# !HII#4#FGJ B  !% 1 1* =$($9$9*$X!-1-K-KJ-W*!3o!E!SH+o=>J!,,112BC !!"4"FG,,001AN (,'A'A ('+"3&;	(
 1($K +%J!8,K#99*E@ 6::<GYY7H''STTzT'1G$ 22%%gmmo6%%g. = % &&"4 0
 	
rI   c                b   SU l         [        R                  " S5      n[        [        R                  " SS5      R	                  5       =(       d    S5      nU(       a  US:  a  / 0 0 SSS.$ [        R                  " S	U R                  U5      5      nU R                  U R                  X5      5      n0 nU R                  X5      n[        R                  (       a  U R                  XV5        U R                  UUU R                  X5      S
9u  pxUUUU R                  U5      U R                  U5      S.$ )NTr   r   r\   r   r   r   r   r   )r   r   r   )_reactivater   r   r   r   r   r0   r   r   r   r   r   rY   r   r   )	rD   conda_prefixr   r   r  r   r   rV   rU   s	            rF   rx   _Activator.build_reactivate  s/   yy0"))M26<<>C!D{Q !!&($&  II!2!2<!@
 $$((D
  $ 5 5l V@"&"<"<#"&"7"7# #= #
 % &"&">">|"L $ : :< H
 	
rI   c                    SSS.n[         R                  " S[        R                  U;   a  U[        R                     OS5      nUR	                  [         R
                  5      nU$ )Nz/usr/bin:/bin:/usr/sbin:/sbinzcC:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\)darwinwin32r   z/usr/bin)r   r   r   platformsplitpathsep)rD   clean_pathspath
path_splits       rF   _get_starting_path_list"_Activator._get_starting_path_listD  sY     6?	
 yy),)DK%*
 ZZ

+
rI   c              #    #    [         (       Ga  UR                  U R                  5      v   / nS Hk  nU R                  R                  USU45      n[        R
                  " SU5      (       a  [        XA5      n[        U5      (       d  MZ  UR                  U5        Mm     [        U5      S:  aI  [        SU SU S3[        R                  S9  [        S	U R                  U5       3[        R                  S9  U(       a$  U R                  R                  USUS
   S45      v   U R                  R                  USSS45      v   U R                  R                  USSS45      v   U R                  R                  USS45      v   U R                  R                  US45      v   U R                  R                  US45      v   g U R                  R                  US45      v   g 7f)N)ucrt64clang64mingw64
clangarm64Libraryz#^(/[A-Za-z]/|/cygdrive/[A-Za-z]/).*r   z	WARNING: z: z1 MSYS2 envs exist: please check your dependenciesr   zWARNING: conda list -n r   binz	mingw-w64usrScripts)r   rstripr1   r   rematchr   r   rN   r   r   r   r   r   )rD   r   variantsvariantr  s        rF   _get_path_dirs_Activator._get_path_dirsY  s    6--)) HIxx}}fi%AB 88A6JJ+D9D;;OOG, J 8}q xr(3de -d.?.?.G-HI
 hhmmVYU$KLL((--K GHH((--E5 ABB((--E :;;((-- 344((--00((--00s   BG#
EG#c                >   U R                  U5      nUc)  [        U R                  U R                  5       5      5      nO[        U R                  U5      5      n[        [        R
                  " SS5      R                  5       =(       d    S5      nU(       dR  [        S U 5       5      (       d;  U R                  [        [        R                  S5      5      nUR                  SU5        [        U R                  U R                  U5      5      5      USS& [        U5      $ )Nr   r\   r   c              3  B   #    U  H  oR                  S 5      v   M     g7f)condabinN)r   )r   ps     rF   r   1_Activator._add_prefix_to_path.<locals>.<genexpr>  s     *U9a::j+A+A9s   r,  )r2   r   r  r   r   r   r   anyr   r   r  insertr(  rB   )rD   r   starting_path_dirs	path_listr   condabin_dirs         rF   r   _Activator._add_prefix_to_path  s    %%f-%T11$2N2N2PQRIT112DEFI biir:@@BGaHs*U9*U'U'U//W5I5I:0VWLQ-d2243F3Fv3NOP	!AYrI   c                (    U R                  US U5      $ rA   )r   )rD   r   r1  s      rF   r   #_Activator._remove_prefix_from_path  s    ++FD:LMMrI   c                   U R                  U5      nU R                  U5      nUc)  [        U R                  U R                  5       5      5      nO[        U R                  U5      5      nS nUb  [        U R	                  U5      5      nU" XFS   5      nUc  SnO[        U5      S-
  nS n	U	cA  US:  a;  U" XFU   5      n	U	c  [        SXh    3[        R                  S9  US-
  nU	c  US:  a  M;  U R                  U R                  R                  [        R                  SS45      5      n
XIS-      U
:X  a  U	S-  n	XGU	S-   2	 OSnUb  [        U R	                  U5      5      XGU& [        U5      $ )	Nc                T    [        U 5       H  u  p#[        X15      (       d  M  Us  $    g rA   )	enumerater   )paths	test_pathqr  s       rF   index_of_path9_Activator._replace_prefix_in_path.<locals>.index_of_path  s(    $U+t//H , rI   r   r   r   zDid not find path entry r   r  r   )r2   r   r  rB   r(  r   r   r   r   r1   r   r   )rD   
old_prefixr  r1  r2  r=  prefix_dirs	first_idxprefix_dirs_idxlast_idxlibrary_bin_dirs              rF   r   "_Activator._replace_prefix_in_path  s   ))*5
))*5
%T11$2N2N2PQRIT112DEFI	 ! 3 3J ?@K%iQ@I 	"%k"2Q"6&?R+?,YO8TUH'6{7S6TU!$ '6&9O &?R+? #'"6"6HHMM3::y%"@A# \*o=MH(Q,67I!-1$2E2Ej2Q-RI	*YrI   c                    g rA   r   )rD   r   r   s      rF   r   _Activator._update_prompt  s    rI   c                    [        U[        R                  5      (       a  g[        [	        U5      5      S:X  a  [        U5      $ U$ )Nbaseenvs)r   r   root_prefixr   r   )rD   r   s     rF   r   _Activator._default_env  s8    vw2233#+GFO#<#FxRFRrI   c                &   [         R                  (       Ga  / n/ n[        [        R                  " SS5      R                  5       5      n[        SUS-   5       H  nXe:X  a'  U R                  [        R                  " SS5      5      nO7U R                  [        R                  " SU 3S5      R                  5       5      n[        [        R                  " SU 3S5      R                  5       5      nUR                  U5        U(       d  USS	 nUR                  U5        M     [        U S
S5      n	[        U SS5      n
U	(       a^  USS	 nUSS	 n[        [        R                  " SU 3S5      R                  5       5      nU(       d  U(       a  UR                  US	   5        O2U
(       a  O*[        U SS5      nU(       d  USS	 nUR                  U5        SR                  US S S	2   5      n[         R                  R                  UUU[        U5      S9$ g)Nr   0r   r   r\   r   r   r   r   r   Fr  rk   ,)default_envstacked_envr   rW   )r   r   r   r   r   r#  ranger   r=   rN   r   r   
env_promptformatr   )rD   r   r   	env_stackprompt_stack	old_shlvlienv_i	stacked_ir+   r)   stackedrk   conda_stacked_envs                 rF   r   _Activator._prompt_modifier  s   ILBIImS9@@BCI1i!m,> --bii.KLE --		M!"5r:AACE !^A3+?!D!K!K!MN	  ' #/"#5L##E* - !}e<J }e<J+Ab1%aO	ryy>))ErJQQST9 ''	"6gu5#/"#5L##$56 #dd); <%%,,--f%	 -   rI   c           	        ^^ U R                   m[        T5      * m S [        R                  " [	        USSS5      5       5       nU R                  [        UU4S jU 5       5      5      $ ! [
         a     gf = f)Nc              3  :   #    U  H  nUR                   v   M     g 7frA   r  r   entrys     rF   r   3_Activator._get_activate_scripts.<locals>.<genexpr>  s      SE 

S   etccondaz
activate.dr   c              3  <   >#    U  H  oTS  T:X  d  M  Uv   M     g 7frA   r   r   r-  _script_extensionse_lens     rF   r   rc  
  s     Gez5F'F11e   	r3   r   r   scandirr   OSErrorr2   r   rD   r   r:  ri  rj  s      @@rF   r    _Activator._get_activate_scripts  s|     11'((	ZZVUG\(RSE ##GeGG
 	
  		s   )A* *
A76A7c           	        ^^ U R                   m[        T5      * m S [        R                  " [	        USSS5      5       5       nU R                  [        UU4S jU 5       SS95      $ ! [
         a     gf = f)	Nc              3  :   #    U  H  nUR                   v   M     g 7frA   r`  ra  s     rF   r   5_Activator._get_deactivate_scripts.<locals>.<genexpr>  s      UE 

Urd  re  rf  zdeactivate.dr   c              3  <   >#    U  H  oTS  T:X  d  M  Uv   M     g 7frA   r   rh  s     rF   r   rs    s     Hu!&'
6G(GAAurk  T)reverserl  ro  s      @@rF   r   "_Activator._get_deactivate_scripts  s     11'((	ZZVUG^(TUE ##HuHRVW
 	
  		s   )A) )
A65A6c                ~   [        U[        5      n[        U[        5      n0 n[        U5      (       at  [	        S [
        R                  " U5       5       5       HJ  n[        U5       nUR                  [        R                  " UR                  5       5      5        S S S 5        ML     [        U5      (       a  [        U5       n[        R                  " UR                  5       5      nUR                  S0 5      nUR                  5        V	s/ s H  oUR                  5       ;   d  M  U	PM     n
n	U
 H7  n[        S[        R                   S9  [        SU S3[        R                   S9  M9     UR                  U5        S S S 5        / n["         H8  nX;   d  M
  XM   [$        :w  a  UR'                  U5        UR)                  U5        M:     U(       aE  SR                  U5      n[        SU S	U S
U SSR                  U5       S3	[        R                   S9  U$ ! , (       d  f       GM  = fs  sn	f ! , (       d  f       N= f)Nc              3  8   #    U  H  oR                   v   M     g 7frA   r`  ra  s     rF   r   7_Activator._get_environment_env_vars.<locals>.<genexpr>"  s      +(Cu

(Cs   r   zbWARNING: duplicate env vars detected. Vars from the environment will overwrite those from packagesr   z	variable z duplicatedz, z<WARNING: the configured environment variable(s) for prefix 'z$' are reserved and will be ignored: zI.

Remove the invalid configuration with `conda env config vars unset -p  z`.
)r   r   r   r   r   r   rm  openupdater   loadsreadr   r   r   r   r   r   r   rN   pop)rD   r   env_vars_filepkg_env_var_dirr   pkg_env_var_pathfprefix_stateprefix_state_env_varsevdup_varsdupcollect_reserved_varsreservedprint_reserved_varss                  rF   r   $_Activator._get_environment_env_vars  s   V%67v';< /""$* +(*

?(C+ %  *+qOODJJqvvx$89 ,+% -  m$#zz!&&(3(4(8(8R(H%!)!02:O:T:T:V4VB   $C= ZZ
 IcU+6SZZH $  56 %  !#)H#%)AA)00:X& * !"&)),A"BNvh W55H4I JXQsxx(=>?tE ZZ O ,+ %$s2   '4HA	H.H)&H),AH.
H&	)H..
H<c                    [         R                  " SU5      (       a3  [        U5      n[        [	        US5      5      (       d  [        U5      e U$ [        [        U5      5      nU$ )z3Hook for shell-specific activation path validation.z\\|/z
conda-meta)r$  searchexpandr   r   r"   r/   r   )rD   rm   r   s      rF   r   _Activator._resolve_prefixN  sb     99W011./Ffl3441&99 5  ./ABCFrI   )r   rC   r  r   rm   rk   rA   )rE   zIterable[str] | None)T)r}   zbool | Nonereturnr/   )r   r/   r  r/   r   r/   rX   r/   r  r/   )r   r/   r  r/   )r  r4   r  None)rm   r/   r  dict[str, Any])rm   r/   rk   r=   r  r  rm   r/   r  r/   )(__name__
__module____qualname____firstlineno____annotations__rG   rY   rh   r*   r+   r)   r'   r   r   r   r   r   r   r{   r   r   ro   rn   rl   r   rs   rx   r  r(  r   r   r   r   r   r   r   r   r   r   __static_attributes__r   rI   rF   r-   r-   I   s9   . 	H  ""D!!N&'P($




" )310-<|3&ED[
[
 [
 
	[
zf
P'
R*)1V &N, \S
-^

1f	rI   r-   )	metaclassc                <    [        [        [        U 5      5      5      $ rA   )r   r	   r
   r`  s    rF   r  r  Z  s    :j./00rI   c           	         U c  g [        U [        5      (       a  U R                  SS5      $ [        U  Vs/ s H  oR                  SS5      PM     sn5      $ s  snf )NrL   rK   )
isinstancer/   rb   rB   )r:  r  s     rF   backslash_to_forwardslashr  ^  sP     }	E3		}}T3''%@%$ll4-%@AA@s   Ac                      \ rS rSrSR                  rSr\" \(       a  \	O\
5      rSrSrSrSrSrS	r\(       a  S
O\rSr\(       a  SOSr\" \SSSS5      rSrS rSrg)PosixActivatorii  :rK   .shNr]   Tzexport %s=''zexport %s='%s'zexport %s="$(cygpath '%s')"z%s='%s'z. "`cygpath '%s'`". "%s"shellre  	profile.dzconda.shc                    [         R                  " SS5      nSU;   a  g [         R                  " S5      nU(       a,  [        R                  " [        R                  " U5      SU5      nUR                  SS5      nUR                  SX#-   05        g )NPS1r\   POWERLINE_COMMANDr   'z'"'"')r   r   r$  subescaperb   r|  )rD   r   r   ps1current_prompt_modifiers        rF   r   PosixActivator._update_prompt  sx    iir"#%"$)),C"D"&&#:;S#FC kk#y),2	
rI   r   r  r  r  r  r   r0   r1   staticmethodr   r   _path_identityr2   r3   r5   r6   r?   r7   r8   r9   r:   r;   r   r   r<   r>   r   r  r   rI   rF   r  r  i  s    88L
C"v#3>ROL  $N&O7=3?ML06,HO 
rI   r  c                      \ rS rSrSR                  rSr\" \(       a  \	O\
5      rSrSrSrSrSrS	r\(       a  S
O\rSr\(       a  SOSr\" \SSSS5      rSrS rSrg)CshActivatori  r  rK   z.cshN;
Tzunsetenv %szsetenv %s "%s"zsetenv %s "`cygpath '%s'`"zset %s='%s'zsource "`cygpath '%s'`"source "%s"r  re  r  z	conda.cshFc                    [         R                  " SS5      n[         R                  " S5      nU(       a,  [        R                  " [        R                  " U5      SU5      nUR                  SX#-   05        g )Npromptr\   r   )r   r   r$  r  r  r|  rD   r   r   r  r  s        rF   r   CshActivator._update_prompt  s[    8R("$)),C"D"VVBII&=>VLF/8	
rI   r   r  r   rI   rF   r  r    s    88L
C"v#3>ROL "N&O6<2/M L5;1O 	
rI   r  c                      \ rS rSr\(       a  SR
                  OSR
                  rSr\" \(       a  \	O\
5      r\(       a  SOSrSrSrS	rS
rSr\r\r\(       a  SOSr\" \SS5      rSrSS jrSrg)XonshActivatori  ;r  rK   .batr  Nr]   Fz*try:
    del $%s
except KeyError:
    passz
$%s = '%s'z'source-cmd --suppress-skip-message "%s"z+source-bash --suppress-skip-message -n "%s"r  z	conda.xshTc                @    U R                   XR                  U5      4-  $ rA   )r9   r2   r   s      rF   r    XonshActivator.template_path_var  s!    !!S*>*>u*E$FFFrI   r   r  )r  r  r  r  r   r   r0   r1   r  r  r  r2   r3   r5   r6   r?   r7   r8   r9   r:   r;   r   r   r<   r>   r   r  r   rI   rF   r  r    s    %388388L
C"%+!O
 "(vUL!DN"O#M"L  	2:  .EGrI   r  c                     ^  \ rS rSrSR                  rSr\" \5      r	Sr
SrSrSrSrS	r\r\rS
rSrSrS rSS jrSU 4S jjrSrU =r$ )CmdExeActivatori  r  rL   r  z.envr]   Fz%s=z%s=%sz_CONDA_SCRIPT=%sNc                    [         R                  " SS5      n[         R                  " S5      nU(       a,  [        R                  " [        R                  " U5      SU5      nX#-   US'   g )NPROMPTr\   r   )r   r   r$  r  r  r  s        rF   r   CmdExeActivator._update_prompt  sN    8R("$)),C"D"VVBII&=>VLF2;rI   c                    g rA   r   rt   s    rF   r{   CmdExeActivator._hook_preamble  s     	rI   c                Z   > [         TU ]  U5      nS[        U5      ;   a  [        S5      eU$ )N^zrCannot activate environments with '^' in their path from cmd.exe.
Use PowerShell or a caret-free environment path.)superr   r/   r    )rD   rm   r   	__class__s      rF   r   CmdExeActivator._resolve_prefix  s9    ();<#f+!C  rI   r   r  r  )r  r  r  r  r   r0   r1   r  r  r2   r3   r5   r6   r?   r7   r8   r9   r:   r;   r<   r>   r   r{   r   r  __classcell__r  s   @rF   r  r    sm    88L
C">2OL!
 NO#M"L(O<
 rI   r  c                      \ rS rSrSR                  rSr\" \(       a  \	O\
5      rSrSrSrSrSrS	r\(       a  S
O\rSrSr\" \SSSSS5      rSrSrg)FishActivatori  z" "rK   z.fishNr  Tzset -e %s || truezset -gx %s "%s"zset -gx %s (cygpath "%s")zset -g %s "%s"r  r  re  fishzconf.dz
conda.fishr   )r  r  r  r  r   r0   r1   r  r   r   r  r2   r3   r5   r6   r?   r7   r8   r9   r:   r;   r   r   r<   r>   r  r   rI   rF   r  r    sy    ::L
C"v#3>ROL (N'O39/M#L#O rI   r  c                     ^  \ rS rSr\(       a  SR
                  OSR
                  r\(       a  SOSr\" \	5      r
SrSrSrS	rS
rSr\r\rSr\" \SSS5      rSrSU 4S jjrSS jrSrU =r$ )PowerShellActivatori  r  r  rL   rK   z.ps1Nr]   Fz$Env:%s = $nullz$Env:%s = "%s"r  r  r,  zconda-hook.ps1Tc                h   > S[         R                   S3n[        TU ]  5       U-   U R                  -   $ )Nz"$CondaModuleArgs = @{ChangePs1 = $})r   r   r  r{   r6   )rD   module_argsr  s     rF   r{   "PowerShellActivator._hook_preamble6  s6    ;G<M<M;NbQw%'+58I8IIIrI   c                    g)NzRemove-Variable CondaModuleArgsr   rt   s    rF   r   #PowerShellActivator._hook_postamble:  s    0rI   r   )r  r/   )r  r  r  r  r   r   r0   r1   r  r  r2   r3   r5   r6   r?   r7   r8   r9   r:   r;   r   r   r<   r>   r{   r   r  r  r  s   @rF   r  r    s    %388388L$cC">2OL!&N&O#M"LO	 J1 1rI   r  c                  6    \ rS rSrSr\rSr\rS r	S r
S rSrg)JSONFormatMixini>  zPReturns the necessary values for activation as JSON, so that tools can use them.Nc                "    [         R                  $ rA   )r   rO   rt   s    rF   r{   JSONFormatMixin._hook_preambleE  s    ***rI   c                4   0 nU H  nUR                  U5        M     UnUc  [        R                  " USS9$ U(       a6  [        SUSS9 n[        R                  " X5        S S S 5        UR
                  $ [        5       e! , (       d  f       WR
                  $ = f)N   )indentr^   Fr_   )r|  r   dumpsr   dumprW   rd   )rD   r(   re   merged_cmdsrg   s         rF   rh   JSONFormatMixin._finalizeH  s    EMM%   ;::hq11'SG2 		(' H 77N%'' HG 77Ns   	A>>
Bc              #  j  #    UR                  S0 5      nUR                  S0 5      nSU;   a6  UR                  S/ 5      nUR                  UR                  S5      5        XBS'   UUUR                  SS5      UR                  S0 5      S.UR                  SS5      UR                  S	S5      S
.S.v   g 7f)Nr   rV   r   rU   r   r   )exportunsetr   r   r   )r*   r+   )r  varsscripts)r   rP   r  )rD   r   r  rV   r  s        rF   ro   JSONFormatMixin._yield_commandsY  s      }}]B/mmM26[ xx+HOOKOOF34#L %"|R8 }}Z4 &MM*<bA'mm,@"E
 	
s   B1B3r   )r  r  r  r  __doc__r   r0   r5   r6   r{   rh   ro   r  r   rI   rF   r  r  >  s$    ZLL+("
rI   r  )posixashbashdashzshcshtcshxonshzcmd.exer  
powershellzdict[str, type[_Activator]]activator_mapr   c                    U R                  S5      nUS   USS p2[        U   /nU H  nUR                  [        U   5        M     [	        S[        [        U5      5      0 5      nU$ )a  Dynamically construct the activator class.

Detect the base activator and any number of formatters (appended using '+' to the base name).
For example, `posix+json` (as in `conda shell.posix+json activate`) would use the
`PosixActivator` base class and add the `JSONFormatMixin`.
+r   r   N	Activator)r  r  rN   formatter_maptyperB   reversed)r  	shell_etc	activator
formattersbasesr  clss          rF   _build_activator_clsr    si     C I%aL)AB-z9%&E]1%&  {E(5/2B
7CJrI   )r  r/   r  r/   )r:  zstr | Iterable[str] | Noner  zstr | tuple[str, ...] | None)Ir  
__future__r   abcr   r$  r   loggingr   os.pathr   r   r   r   r	   r
   r   r   pathlibr   typingr   r\   r   auxlib.compatr   base.constantsr   r   r   r   base.contextr   r   common.compatr   common.pathr   r  r   r   r   common.serializer   
exceptionsr   r   r    r!   r"   r#   collections.abcr$   r%   r&   r  logr   ABCMetar-   r  r  r  r  r  r  r  r  r  r  r  r  r  r   rI   rF   <module>r     sx   # 
 	 	 
 	 	 	    ! 1  9 ! 8 H H "  2   "J'l+ N3;; Nb1B%B!B*
Z *
Z#
: #
LGZ G<(j (VJ 41* 1>1
j 1
j %.*  O
rI   