
    h                     |    S 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  SS	/0rS
S/r\SS j5       rS rS rS rg)z,
Thin wrappers around `concurrent.futures`.
    )contextmanager)length_hint)	cpu_count   )tqdm)TqdmWarningzgithub.com/	casperdcl
thread_mapprocess_mapc              #      #    [        U SS5      nU=(       d    U R                  5       n[        X1U5      nU R                  U5        Uv   Uc  U ?gU R                  U5        g7f)z>get (create if necessary) and then restore `tqdm_class`'s lock_lockN)getattrget_lockset_lockr   )
tqdm_class	lock_nameold_locklocks       I/var/www/html/env/lib/python3.13/site-packages/tqdm/contrib/concurrent.pyensure_lockr      sa      z7D1H,z**,D4D)D
JH%s   A A"c                    UR                  5       nSU;  a  [        US   5      US'   UR                  S[        5      nUR                  S[	        S[        5       S-   5      5      nUR                  SS5      nUR                  S	S
5      n[        XXS9 n	U " XeR                  U	4S9 n
[        U" U
R                  " U/UQ7SU0640 UD65      sSSS5        sSSS5        $ ! , (       d  f       O= f SSS5        g! , (       d  f       g= f)z
Implementation of `thread_map` and `process_map`.

Parameters
----------
tqdm_class  : [default: tqdm.auto.tqdm].
max_workers  : [default: min(32, cpu_count() + 4)].
chunksize  : [default: 1].
lock_name  : [default: "":str].
totalr   r   max_workers       	chunksize   r    )r   )r   initializerinitargsN)
copyr   pop	tqdm_autominr   r   r   listmap)PoolExecutorfn	iterablestqdm_kwargskwargsr   r   r   r   lkexs              r   _executor_mapr.      s     Ff%il3wL)4J**]CIK!O,DEK

;*I

;+I	Z	5k?R?R$&5*-/
266"#Ny#NI#NYRXYZ* * 
6	5* * * 
6	5	5s$   C9%&C	C9
C,	(C99
Dc                 ,    SSK Jn  [        X0/UQ70 UD6$ )av  
Equivalent of `list(map(fn, *iterables))`
driven by `concurrent.futures.ThreadPoolExecutor`.

Parameters
----------
tqdm_class  : optional
    `tqdm` class to use for bars [default: tqdm.auto.tqdm].
max_workers  : int, optional
    Maximum number of workers to spawn; passed to
    `concurrent.futures.ThreadPoolExecutor.__init__`.
    [default: max(32, cpu_count() + 4)].
r   )ThreadPoolExecutor)concurrent.futuresr0   r.   )r(   r)   r*   r0   s       r   r
   r
   6   s     6+K)K{KK    c                     SSK Jn  U(       a:  SU;  a4  [        [        [        U5      5      nUS:  a  SSKJn  U" SU-  [        SS9  S	U;  a  UR                  5       nS
US	'   [        X0/UQ70 UD6$ )af  
Equivalent of `list(map(fn, *iterables))`
driven by `concurrent.futures.ProcessPoolExecutor`.

Parameters
----------
tqdm_class  : optional
    `tqdm` class to use for bars [default: tqdm.auto.tqdm].
max_workers  : int, optional
    Maximum number of workers to spawn; passed to
    `concurrent.futures.ProcessPoolExecutor.__init__`.
    [default: min(32, cpu_count() + 4)].
chunksize  : int, optional
    Size of chunks sent to worker processes; passed to
    `concurrent.futures.ProcessPoolExecutor.map`. [default: 1].
lock_name  : str, optional
    Member of `tqdm_class.get_lock()` to use [default: mp_lock].
r   )ProcessPoolExecutorr   i  )warnzIterable length %d > 1000 but `chunksize` is not set. This may seriously degrade multiprocess performance. Set `chunksize=1` or more.r   )
stacklevelr   mp_lock)
r1   r4   maxr&   r   warningsr5   r   r!   r.   )r(   r)   r*   r4   longest_iterable_lenr5   s         r   r   r   H   s    & 7[3  #3{I#>?$&% /1EF , +%!&&(#,K ,L9LLLr2   N)r   )__doc__
contextlibr   operatorr   osr   autor   r#   stdr   
__author____all__r   r.   r
   r    r2   r   <module>rD      sW    &    $ k]+

' 
& 
&[2L$!Mr2   