+
    3j                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	 ]P                  R8H  t]P                  ! ]4      t ! R R]4      tR t] P"                  R 4       tR tRR	 ltR
 tR tRR ltR tR tRR ltRR ltR tR# )    N)ExecutorProcessPoolExecutorThreadPoolExecutorwin32c                   &   a  ] tR t^t o R tRtV tR# )DummyExecutorc              '  F   "   V F  pV F  pV! V4      x  K  	  K  	  R # 5iN )selffunc	iterablesiterablethings   &&*  <lib/python3.14/site-packages/conda_package_handling/utils.pymapDummyExecutor.map   s#     !H!5k! " "s   !r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s     " "    r   c                 <    V ^8X  d   \        4       # \        V R7      # )   max_workers)r   r   )	processess   &r   get_executorr!      s    '1n=?\2ER[2\\r   c              #      "   \         P                  ! 4       p \         P                  ! V 4       R x  \         P                  ! V4       R #   \         P                  ! T4       i ; i5ir
   )osgetcwdchdir)destcurdirs   & r   	tmp_chdirr(      s;     YY[F

s   A&A A&A##A&c                 l    \        V \        4      '       g   \        V R 4      '       g   V e   V .p V # . p V # )__iter__)
isinstancestrhasattr)args   &r   ensure_listr/   "   s:    #s73
#;#;?%C J CJr   c           	        V FH  p\         P                  ! V4      p\        V 4      \        \        VP                  V 4      4      ,
          p KJ  	  V  Uu. uF  p\
        P                  P                  \
        P                  P                  W4      4      '       gE   \
        P                  P                  \
        P                  P                  W4      4      '       d   K  VNK  	  up# u upi )zIRemove things like the .git directory from the list of files to be copied)
recompilesetfiltermatchr#   pathislinkjoinisdir)
files_listprefixfilter_patternspatternrfs   &&&   r   filter_filesr@   +   s     #JJw_s6!'':+F'GG
 #
 A 	rww||F.//rww}}RWW\\RXE\7]	 	
  s   BC'C'c                >    V R8H  ;'       g    V P                  R4      # )zEReturn True if ``path`` belongs in the ``info-*`` component (CEP 35).info)zinfo/zinfo\)
startswith)r6   s   &r   is_info_member_pathrD   C   s    6>AAT__-@AAr   c                h    \        W4       Uu. uF  p\        V4      '       d   K  VNK  	  up# u upi )zReturn packages files from files list that belong to the ``pkg-*`` component (CEP 35).

Returns files that go into the ``pkg-*`` component or in other words filter OUT
files that go into the ``info-*`` component.
)r@   rD   )r:   r;   r?   s   && r   filter_info_filesrF   H   s.     $J7V7!?RST?UAA7VVVs   //c                    a a \         P                  ! V4      p\        VV 3R  lR4       F  pVP                  V4       K  	  VP	                  4       # )c                  &   < SP                  S 4      # r
   )read)
buffersizefds   r   <lambda>_checksum.<locals>.<lambda>S   s    bggj1r   r   )hashlibnewiterupdate	hexdigest)rK   	algorithmrJ   	hash_implblocks   f&f  r   	_checksumrV   Q   s@    I&I137 8  r   c                     \        V R 4      # )sha256rV   rK   s   &r   sha256_checksumr[   X   s    R""r   c                     \        V R 4      # )md5rY   rZ   s   &r   md5_checksumr^   \   s    Rr   c                    \        V R4      ;_uu_ 4       p\        W1V4      uuRRR4       #   + '       g   i     R# ; i)z9
Calculate a checksum for a filename (not an open file).
rbN)openrV   )fnrS   rJ   rK   s   &&& r   checksumrc   `   s'     
b$2
3 
s   ,=	c                   \        \        V4      R7      ;_uu_ 4       pV Uu. uF  qCP                  \        WV4      NK  	  ppRRR4       X Uu. uF  qfP	                  4       NK  	  up# u upi   + '       g   i     L4; iu upi )z:
Calculate multiple checksums for a filename in parallel.
r   N)r   lensubmitrc   result)rb   
algorithmsrJ   erS   resultsrg   s   &&&    r   	checksumsrk   h   si     
J	8	8AR\]R\Y88HbZ@R\] 
9 +22'MMO'22 ^ 
9	8 3s"   A0A+A0B+A00B 	c                >    ^ V n         RV n        ^ V n        RV n        V # )z$
Remove user id, name from tarinfo.
 )uidunamegidgname)tarinfos   &r   anonymize_tarinfors   r   s%    
 GKGMGKGMNr   ))z(.*[\\\\/])?\.git[\\\\/].*z(.*[\\\\/])?\.git$z(.*)?\.DS_Store.*z.*\.la$zconda-meta.*)i   )i   )
contextlibrN   loggingr#   r1   sysconcurrent.futuresr   r   r   platformon_win	getLoggerr   logr   r!   contextmanagerr(   r/   r@   rD   rF   rV   r[   r^   rc   rk   rs   r   r   r   <module>r}      s       	 	 
 P P		 !"H "]  0B
W!# 43	r   