
    si$
                     v    S 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  SSKJr  S	S jr\S	S j5       rg)
z9Utilities for finding executables and `conda-*` commands.    N)cache)basename
expanduserisfilejoin   )on_winc                    U(       a  SSK Jn  U" 5       /n[        R                  US   :w  a  UR	                  [        R                  5        U Vs/ s H,  n[        U[        [        R                  " S5      5      5      PM.     snq	[        (       a  [        R	                  S5        O/ q	[        R                  [        R                  R                  SS5      R                  [        R                   5      5        [         Hn  n[        (       a/  S H'  n[        XPU-   5      n[#        U5      (       d  M#  Us  s  $    M=  [        XP5      n[#        [%        U5      5      (       d  Mc  [%        U5      s  $    g s  snf )	Nr   sys_prefix_unfollowedr   scriptsC:\cygwin\binPATH )z.exez.batr   )utilsr   sysprefixappendr   r   	sysconfigget_path	dir_pathsr	   extendosenvirongetsplitpathsepr   r   )
executableinclude_othersr   prefixespdir_pathextpaths           7lib/python3.13/site-packages/conda/cli/find_commands.pyfind_executabler&      s    1)+,::!$OOCJJ'OWXx!T!Xi&8&8&CDExX	6./	RZZ^^FB/55bjjAB6+H3&67$<<K ,
 -Dj&''!$''  ' Ys   3E2c                    U (       a  SSK Jn  U" 5       /n[        R                  US   :w  a  UR	                  [        R                  5        U Vs/ s H,  n[        U[        [        R                  " S5      5      5      PM.     nn[        (       a  UR	                  S5        O/ nUR                  [        R                  R                  SS5      R                  [        R                  5      5        [        (       a  [         R"                  " S5      nO[         R"                  " S	5      n[%        5       nU H|  n [        R&                  " U5       H^  nUR)                  UR*                  5      n	U	(       d  M'  UR-                  5       (       d  M>  UR/                  U	R1                  S
5      5        M`     M~     [;        [=        U5      5      $ s  snf ! [2        [4        [6        [8        4 a     M  f = f)Nr   r   r   r   r   r   r   zconda-([\w\-]+)(\.(exe|bat))?$zconda-([\w\-]+)$   )r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   recompilesetscandirmatchnameis_fileaddgroupFileNotFoundErrorNotADirectoryErrorPermissionErrorOSErrortuplesorted)
r   r   r    r!   r   patresr"   entryms
             r%   find_commandsr<   /   s\   1)+,::!$OOCJJ'OWXx!T!Xi&8&8&CDEx	X6./	RZZ^^FB/55bjjABvjj:;jj,-
%C	H-IIejj)1GGAGGAJ' .  9 Y* "#5P 	 	s$   3G89G5G$GG+*G+)T)__doc__r   r)   r   r   	functoolsr   os.pathr   r   r   r   common.compatr	   r&   r<        r%   <module>rC      s=    @ 	 	 
   6 6 "@ # #rB   