
    si                        S r SSK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  \(       a  SSKJrJr  \	" \5      rS	 rSS
 jrSS jrSS jrg)zCommon directory utilities.    )annotations)reduce)
accumulatechain)	getLoggerjoin)TYPE_CHECKING)IterableSequencec                8    [        S [        X5       5       5      $ )Nc              3  .   #    U  H  u  pX:H  v   M     g 7fN ).0tsws      =lib/python3.13/site-packages/conda/common/path/directories.py	<genexpr>'tokenized_startswith.<locals>.<genexpr>   s     L$K51qw$Ks   )allzip)test_iterablestartswith_iterables     r   tokenized_startswithr      s    LC$KLLL    c                    [        [        S U  Vs1 s H   n[        UR                  S5      S S 5      iM"     sn5      5      $ s  snf )N/)sortedfiltertuplesplit)filesfs     r   get_all_directoriesr&      s:    &%H%Qaggcl3B&7 8%HIJJHs   'Ac                   ^ [        U 5      nU(       d  g/ mU4S jn[        X!5      nT(       d  TR                  US   5        O%[        UTS   5      (       d  TR                  U5        [	        S T 5       5      $ )Nr   c                J   > [        X5      (       d  TR                  U 5        U$ r   )r   append)xyleavess     r   _process&get_leaf_directories.<locals>._process$   s    #A))MM!r   r   c              3  D   #    U  H  nS R                  U5      v   M     g7f)r   Nr   )r   leafs     r   r   'get_leaf_directories.<locals>.<genexpr>0   s     3FD$Fs    )r&   r   r)   r   r"   )r$   directoriesr-   lastr,   s       @r   get_leaf_directoriesr4      sl     &e,KF
 ((Dk"o&!$r
33d3F333r   c                N    [        [        R                  " S U  5       5      5      $ )Nc              3  R   #    U  H  o(       d  M  [        U[        5      v   M     g 7fr   )r   r	   )r   	directorys     r   r   &explode_directories.<locals>.<genexpr>7   s#      
9JIi'Jy$''9Js   
'')setr   from_iterable)child_directoriess    r   explode_directoriesr<   3   s,      
9J
 	
 r   N)r$   Iterable[str]returnzlist[tuple[str, ...]])r$   r=   r>   zSequence[str])r;   zIterable[tuple[str, ...]]r>   zset[str])__doc__
__future__r   	functoolsr   	itertoolsr   r   loggingr   os.pathr	   typingr
   collections.abcr   r   __name__logr   r&   r4   r<   r   r   r   <module>rI      sB    " "  '    2MK40r   