o
    {j6h                     @   sL   d Z ddlmZ ddlmZ ddlmZ ddgiZdgZ	G d	d de
Zd
S )z,
IO/concurrency helpers for `tqdm.contrib`.
    )deque)ThreadPoolExecutor   )tqdmzgithub.com/	casperdcl
MonoWorkerc                   @   s    e Zd ZdZdd Zdd ZdS )r   z
    Supports one running task and one waiting task.
    The waiting task is the most recent submitted (others are discarded).
    c                 C   s   t dd| _tg d| _d S )N   )max_workersr   )r   poolr   futures)self r   h/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/tqdm/contrib/utils_worker.py__init__   s   zMonoWorker.__init__c              
   O   s   | j }t||jkr#| }| s#t|r| }|  || z| jj	|g|R i |}W n t
yL } ztt| W Y d}~dS d}~ww || |S )z;`func(*args, **kwargs)` may replace currently waiting task.N)r   lenmaxlenpopleftdonepopcancel
appendleftr
   submit	Exception	tqdm_autowritestrappend)r   funcargskwargsr   runningwaitinger   r   r   r      s    

zMonoWorker.submitN)__name__
__module____qualname____doc__r   r   r   r   r   r   r      s    N)r&   collectionsr   concurrent.futuresr   autor   r   
__author____all__objectr   r   r   r   r   <module>   s    
