HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/tqdm/contrib/__pycache__/concurrent.cpython-310.pyc
o

���g��@s|dZddlmZddlmZddlmZddlmZ	ddl
mZdd	giZd
dgZ
edd
d��Zdd�Zdd
�Zdd�ZdS)z,
Thin wrappers around `concurrent.futures`.
�)�contextmanager)�length_hint)�	cpu_count�)�tqdm)�TqdmWarningzgithub.com/�	casperdcl�
thread_map�process_map�ccsT�t|dd�}|p|��}t|||�}|�|�|V|dur#|`dS|�|�dS)z>get (create if necessary) and then restore `tqdm_class`'s lock�_lockN)�getattr�get_lock�set_lockr)�
tqdm_class�	lock_name�old_lock�lock�r�B/usr/local/lib/python3.10/dist-packages/tqdm/contrib/concurrent.py�ensure_locks�
rc	Os�|��}d|vrt|d�|d<|�dt�}|�dtdt�d��}|�dd�}|�d	d
�}t||d��=}	|||j|	fd��#}
t||
j	|g|�Rd|i�fi|���Wd
�Wd
�S1sdwYWd
�d
S1stwYd
S)a
    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].
    �totalrr�max_workers� ��	chunksize�rr)r)r�initializer�initargsN)
�copyr�pop�	tqdm_auto�minrrr�list�map)�PoolExecutor�fn�	iterables�tqdm_kwargs�kwargsrrrr�lk�exrrr�
_executor_maps"�&��"�r,cOs$ddlm}t||g|�Ri|��S)a�
    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.futuresr-r,)r&r'r(r-rrrr	6scOs|ddlm}|r&d|vr&ttt|��}|dkr&ddlm}|d|tdd�d	|vr2|��}d
|d	<t	||g|�Ri|��S)a�
    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)�ProcessPoolExecutorri�)�warnz�Iterable length %d > 1000 but `chunksize` is not set. This may seriously degrade multiprocess performance. Set `chunksize=1` or more.r)�
stacklevelr�mp_lock)
r.r/�maxr$r�warningsr0rrr,)r&r'r(r/�longest_iterable_lenr0rrrr
Hs��N)r)�__doc__�
contextlibr�operatorr�osr�autorr!�stdr�
__author__�__all__rr,r	r
rrrr�<module>s