
    si                       % 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-  SSK.J/r/J0r0J1r1J2r2  \(       a  SSK3J4r4J5r5  \" \65      r7\/" 5       \1" 5       \2" S5      \2" S5      \2" S5      S.r8 " S S\Rr                  S9r:S r;    S2S jr< " S S\:5      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/'   S0\D0rGS1 rHg)3aN  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)
deprecated)ActivateHelpArgumentErrorDeactivateHelpGenericHelp)CallableIterable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'   S;S jrS<S jrS rS rS r	S r
\R                  " SSSSS 9S;S=S! jj5       rS" 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S* rS+ rS, rS- rS. rS/ rS0 rS;S1 jrS;S2 jrS;S3 jrS4 r S5 r!S6 r"S7 r#S8 r$S9 r%S:r&g)B
_ActivatorA   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                    Xl         g N)_raw_arguments)self	argumentss     .lib/python3.13/site-packages/conda/activate.py__init___Activator.__init__n   s    '    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_dictr0   extendenvvars_force_uppercaseupper)rA   export_metavarskwargs
unset_varsexport_varsnamevalues          rC   get_export_unset_vars _Activator.get_export_unset_varsq   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)
r4   r   r   r0   r   replacer   writerT   NotImplementedError)rA   r&   extcontenttfs        rC   	_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      $ r?   )stackbuild_stackenv_name_or_prefixbuild_activatere   _yield_commandsr3   )rA   builder_results     rC   r(   _Activator.activate   s\    ::!--d.E.EFN!001H1HIN~~  0$2I2I
 	
rF   c                t    U R                  U R                  U R                  5       5      U R                  5      $ r?   )re   rl   build_deactivater3   rA   s    rC   r)   _Activator.deactivate   2    ~~  !6!6!894;R;R
 	
rF   c                t    U R                  U R                  U R                  5       5      U R                  5      $ r?   )re   rl   build_reactivater3   rq   s    rC   r'   _Activator.reactivate   rs   rF   z25.9z26.3auto_activate_baseauto_activate)renamec                ,   / 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'
rZ   )_hook_preamblerK   r:   r<   	read_textr9   r   rx   default_activation_env_hook_postambler   )rA   rx   builderpreamble	postambles        rC   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!!rF   c                    U R                  5         [        R                  R                  U R                  5        [        X R                  5      " 5       n[        R                  R                  U R                  5        U$ r?   )_parse_and_set_argsr   plugin_managerinvoke_pre_commandscommandgetattrinvoke_post_commands)rA   responses     rC   execute_Activator.execute   sV      " 	224<<@4.033DLLArF   c                     U R                   U-  $ r?   )r5   )rA   keys     rC   template_unset_var_Activator.template_unset_var   s    ""S((rF   c                "    U R                   X4-  $ r?   )r6   rA   r   rU   s      rC   template_export_var_Activator.template_export_var   s    ##sl22rF   c                "    U R                   X4-  $ r?   )r7   r   s      rC   template_path_var_Activator.template_path_var   s    !!SL00rF   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 )NrH   rI   )
r   rL   rJ   rK   r   intersectionr   r   r4   r   )rA   resultr   rU   s       rC   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rF   c                    g r?    rq   s    rC   r~   _Activator._hook_postamble   s    rF   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r?   r   ).0arg
help_flagss     rC   	<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r?   r   )r   r   r   s     rC   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:
rZ   z+ does not accept arguments
remainder_args: )r@   tuplelenlistBUILTIN_COMMANDSr    endswithindexr   dev
ValueError
auto_stackshlvlrh   r-   rj   r}   r   )
rA   rB   non_help_argshelp_requestedremainder_argsdev_idx	stack_idxno_stack_idxr   r   s
           @@rC   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#4-  v   M     UR                  SS5       H  nU R                  U-  v   M     UR                  SS5       H  nU R
                  U-  v   M     UR                  S0 5      R                  5        H  u  p#U R                  X#4-  v   M     UR                  S0 5      R                  5        H  u  p#U R                  X#4-  v   M     UR                  SS5       H  nU R                  U-  v   M     g 7f)Nexport_pathdeactivate_scriptsr   rR   set_varsrS   activate_scripts)sortedgetrJ   r6   r9   r5   r8   )rA   	cmds_dictr   rU   scripts        rC   rl   _Activator._yield_commands0  s$     }b!A!G!G!IJJC&&#55 K  mm$8"=F&&// > ==r2C%%++ 3 $--
B7==?JC##sl22 @ $--r:@@BJC&&#55 C  mm$6;F&&// <s   D:D<c                &    U R                  US5      $ )NF_build_activate_stackrA   rj   s     rC   rk   _Activator.build_activateC  s    ))*<eDDrF   c                &    U R                  US5      $ )NTr   r   s     rC   ri   _Activator.build_stackF  s    ))*<dCCrF   c           	     &   [         R                  " SU5      (       a4  [        U5      n[        [	        US5      5      (       d  SSKJn  U" U5      eO[        U5      n[        [        R                  " SS5      R                  5       =(       d    S5      n[        R                  " S5      nXc:X  a  US:  a  U R                  5       $ U R                  U5      nUS-   nU R                  U5      n	U R                  X95      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	[.        R0                  S
9  [-        SU 3[.        R0                  S
9  U H"  n[        R                  " U5      USU SU 3'   M$     US:X  a<  U R2                  " SU R5                  U R7                  U5      5      UUU	U
S.UD6u  nnSnOU(       aH  U R2                  " SU R5                  U R7                  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 R2                  " SU R5                  U R9                  Xc5      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[<        R>                  (       a  U RA                  UU
5        UUUUUS.$ s  snnf s  snf )Nz\\|/z
conda-metar   )EnvironmentLocationNotFoundCONDA_SHLVLrY   r   CONDA_PREFIXz=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rR   r   rS   r   r   )!researchexpandr   r   
exceptionsr   r   intosgetenvstripru   _get_activate_scripts_default_env_prompt_modifier_get_environment_env_varsrJ   r   setr   environprintsysstderrrV   r.   _add_prefix_to_path_replace_prefix_in_path_get_deactivate_scriptsr   	changeps1_update_prompt)rA   rj   rh   prefixr   old_conda_shlvlold_conda_prefixr   conda_shlvlconda_default_envconda_prompt_modifierrT   rU   env_varsclobber_varsclobber_varoverwritten_clobber_varsrS   rR   r   r   s                        rC   r    _Activator._build_activate_stackI  sg   99W011./Ffl344C1&99 5
 ++=>F 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   L2L' LL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   rY   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   )rR   r   rS   r   r   r   )_deactivater   r   r   r   r   r   r.   _remove_prefix_from_pathrV   r   r   r   r   rK   r   r   r   r   r   keysrN   rO   )rA   r   r   r   old_conda_environment_env_varsnew_conda_shlvlr   new_pathrS   rR   r   r   r   
new_prefixr   new_conda_environment_env_varsold_prefix_stackedunset_vars2env_var
save_values                       rC   rp   _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
 	
rF   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   rY   r   r   r   r   r   )r   r   r   )_reactivater   r   r   r   r   r.   r   r   r   r   r   rV   r   r   )	rA   conda_prefixr   r   r  r   r   rS   rR   s	            rC   ru   _Activator.build_reactivate  s/   yy0"))M26<<>C!D{Q !!&($&  II!2!2<!@
 $$((D
  $ 5 5l V@"&"<"<#"&"7"7# #= #
 % &"&">">|"L $ : :< H
 	
rF   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)rA   clean_pathspath
path_splits       rC   _get_starting_path_list"_Activator._get_starting_path_list;  sY     6?	
 yy),)DK%*
 ZZ

+
rF   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   rstripr/   r   r   matchr   r   rK   r   r   r   r   r   )rA   r   variantsvariantr  s        rC   _get_path_dirs_Activator._get_path_dirsP  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   rY   r   c              3  B   #    U  H  oR                  S 5      v   M     g7f)condabinN)r   )r   ps     rC   r   1_Activator._add_prefix_to_path.<locals>.<genexpr>  s     *U9a::j+A+A9s   r)  )r0   r   r  r   r   r   r   anyr   r   r  insertr%  r   )rA   r   starting_path_dirs	path_listr   condabin_dirs         rC   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rF   c                (    U R                  US U5      $ r?   )r   )rA   r   r.  s      rC   r   #_Activator._remove_prefix_from_path  s    ++FD:LMMrF   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 r?   )	enumerater   )paths	test_pathqr  s       rC   index_of_path9_Activator._replace_prefix_in_path.<locals>.index_of_path  s(    $U+t//H , rF   r   r   r   zDid not find path entry r   r  r  )r0   r   r  r   r%  r   r   r   r   r/   r   r   )rA   
old_prefixr  r.  r/  r:  prefix_dirs	first_idxprefix_dirs_idxlast_idxlibrary_bin_dirs              rC   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rF   c                    g r?   r   )rA   r   r   s      rC   r   _Activator._update_prompt  s    rF   c                    [        U[        R                  5      (       a  g[        [	        U5      5      S:X  a  [        U5      $ U$ )Nbaseenvs)r   r   root_prefixr   r   )rA   r   s     rC   r   _Activator._default_env  s8    vw2233#+GFO#<#FxRFRrF   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   rY   r   r   r   r   r   Fr
  rh   ,)default_envstacked_envr   rT   )r   r   r   r   r   r!  ranger   r;   rK   r   r   
env_promptformatr   )rA   r   r   	env_stackprompt_stack	old_shlvlienv_i	stacked_ir)   r'   stackedrh   conda_stacked_envs                 rC   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%	 -   rF   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r?   r  r   entrys     rC   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r?   r   r   r*  _script_extensionse_lens     rC   r   r`    s     Gez5F'F11e   	r1   r   r   scandirr   OSErrorr0   r   rA   r   r7  rf  rg  s      @@rC   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r?   r]  r^  s     rC   r   5_Activator._get_deactivate_scripts.<locals>.<genexpr>  s      UE 

Ura  rb  rc  zdeactivate.dr   c              3  <   >#    U  H  oTS  T:X  d  M  Uv   M     g 7fr?   r   re  s     rC   r   rp    s     Hu!&'
6G(GAAurh  T)reverseri  rl  s      @@rC   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r?   r]  r^  s     rC   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   rj  openupdater   loadsreadr   r   r   r   r   r   r   rK   pop)rA   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                  rC   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<)r   r@   r
  r   rj   rh   r?   )T)rx   zbool | Nonereturnr-   )r   r-   r  r-   r   r-   rU   r-   r  r-   )r  r2   r  None)'__name__
__module____qualname____firstlineno____annotations__rD   rV   re   r(   r)   r'   r   argumentr%   r   r   r   r   r{   r~   r   rl   rk   ri   r   rp   ru   r  r%  r   r   r   r   r   r   r   r   r   __static_attributes__r   rF   rC   r+   r+   A   s+   . 	H  ""D!!(&'P($




 )=oV" W" )31<|0&ED_
Bf
P'
R*)1V &N, \S
-^

1rF   r+   )	metaclassc                <    [        [        [        U 5      5      5      $ r?   )r   r	   r
   r]  s    rC   r   r   F  s    :j./00rF   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 )NrI   rH   )
isinstancer-   r_   r   )r7  r  s     rC   backslash_to_forwardslashr  J  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)PosixActivatoriU  :rH   .shNrZ   Tzexport %s=''zexport %s='%s'zexport %s="$(cygpath '%s')"z%s='%s'z. "`cygpath '%s'`". "%s"shellrb  	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PS1rY   POWERLINE_COMMANDr   'z'"'"')r   r   r   subescaper_   ry  )rA   r   r   ps1current_prompt_modifiers        rC   r   PosixActivator._update_prompto  sx    iir"#%"$)),C"D"&&#:;S#FC kk#y),2	
rF   r   r  r  r  r  r   r.   r/   staticmethodr   r   _path_identityr0   r1   r3   r4   r=   r5   r6   r7   r8   r9   r   r   r:   r<   r   r  r   rF   rC   r  r  U  s    88L
C"v#3>ROL  $N&O7=3?ML06,HO 
rF   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  rH   z.cshN;
Tzunsetenv %szsetenv %s "%s"zsetenv %s "`cygpath '%s'`"zset %s='%s'zsource "`cygpath '%s'`"source "%s"r  rb  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promptrY   r   )r   r   r   r  r  ry  rA   r   r   r  r  s        rC   r   CshActivator._update_prompt  s[    8R("$)),C"D"VVBII&=>VLF/8	
rF   r   r  r   rF   rC   r  r    s    88L
C"v#3>ROL "N&O6<2/M L5;1O 	
rF   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  rH   .batr  NrZ   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-  $ r?   )r7   r0   r   s      rC   r    XonshActivator.template_path_var  s!    !!S*>*>u*E$FFFrF   r   r  )r  r  r  r  r   r   r.   r/   r  r  r  r0   r1   r3   r4   r=   r5   r6   r7   r8   r9   r   r   r:   r<   r   r  r   rF   rC   r  r    s    %388388L
C"%+!O
 "(vUL!DN"O#M"L  	2:  .EGrF   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rg)CmdExeActivatori  r  rI   r  z.envrZ   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PROMPTrY   r   )r   r   r   r  r  r  s        rC   r   CmdExeActivator._update_prompt  sN    8R("$)),C"D"VVBII&=>VLF2;rF   c                    g r?   r   rq   s    rC   r{   CmdExeActivator._hook_preamble  s     	rF   r   r  )r  r  r  r  r   r.   r/   r  r  r0   r1   r3   r4   r=   r5   r6   r7   r8   r9   r:   r<   r   r{   r  r   rF   rC   r  r    sb    88L
C">2OL!
 NO#M"L(O<rF   r  c                  ,    \ rS rSrSrSrSr\r\rSr	Sr
g)CmdExeRunActivatori  Nz	SET "%s="zSET "%s=%s"z8CALL "%s"
IF %%ERRORLEVEL%% NEQ 0 EXIT /b %%ERRORLEVEL%%r   )r  r  r  r  r3   r5   r6   r7   r8   r9   r  r   rF   rC   r  r    s&      N#O#M"L ROrF   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" "rH   z.fishNr  Tzset -e %s || truezset -gx %s "%s"zset -gx %s (cygpath "%s")zset -g %s "%s"r  r  rb  fishzconf.dz
conda.fishr   )r  r  r  r  r   r.   r/   r  r   r   r  r0   r1   r3   r4   r=   r5   r6   r7   r8   r9   r   r   r:   r<   r  r   rF   rC   r  r    sy    ::L
C"v#3>ROL (N'O39/M#L#O rF   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  rI   rH   z.ps1NrZ   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   superr{   r4   )rA   module_args	__class__s     rC   r{   "PowerShellActivator._hook_preamble'  s6    ;G<M<M;NbQw%'+58I8IIIrF   c                    g)NzRemove-Variable CondaModuleArgsr   rq   s    rC   r~   #PowerShellActivator._hook_postamble+  s    0rF   r   )r  r-   )r  r  r  r  r   r   r.   r/   r  r  r0   r1   r3   r4   r=   r5   r6   r7   r8   r9   r   r   r:   r<   r{   r~   r  __classcell__)r  s   @rC   r  r    s    %388388L$cC">2OL!&N&O#M"LO	 J1 1rF   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                  $ r?   )r   rL   rq   s    rC   r{   JSONFormatMixin._hook_preamble6  s    ***rF   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\   )ry  r   dumpsr   dumprT   ra   )rA   r&   rb   merged_cmdsrd   s         rC   re   JSONFormatMixin._finalize9  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   rS   r   rR   r   r   )exportunsetr   r   r   )r(   r)   )r  varsscripts)r   rM   r|  )rA   r   r  rS   r  s        rC   rl   JSONFormatMixin._yield_commandsJ  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   r.   r3   r4   r{   re   rl   r  r   rF   rC   r  r  /  s$    ZLL+("
rF   r  )posixashbashdashzshcshtcshxonshzcmd.exezcmd.exe.runr  
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  rK   formatter_maptyper   reversed)r  	shell_etc	activator
formattersbasesr  clss          rC   _build_activator_clsr  w  si     C I%aL)AB-z9%&E]1%&  {E(5/2B
7CJrF   )r7  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   rY   r   auxlib.compatr   base.constantsr   r   r   r   base.contextr   r   common.compatr   common.pathr   r  r   r   r   common.serializer   deprecationsr   r   r   r    r!   r"   collections.abcr#   r$   r  logr   ABCMetar+   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   rF   rC   <module>r     s   # 
 	 	 
 	 	 	    ! 1  9 ! 8 H H " $ P P2  "J'l+ B3;; BJ1B%B!B*
Z *
Z#
: #
LGZ G<j DR RJ 41* 1>1
j 1
j %%.*   O
rF   