
    +h                     R    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e
      Zy
)z,
IO/concurrency helpers for `tqdm.contrib`.
    )deque)ThreadPoolExecutor   )tqdmzgithub.com/	casperdcl
MonoWorkerc                       e Zd ZdZd Zd Zy)r   z
    Supports one running task and one waiting task.
    The waiting task is the most recent submitted (others are discarded).
    c                 H    t        d      | _        t        g d      | _        y )N   )max_workersr   )r   poolr   futures)selfs    L/var/www/html/venv/lib/python3.12/site-packages/tqdm/contrib/utils_worker.py__init__zMonoWorker.__init__   s    &15	R|    c                    | j                   }t        |      |j                  k(  r\|j                         }|j	                         s<t        |      r |j                         }|j                          |j                  |       	  | j                  j                  |g|i |}|j                  |       |S # t        $ r(}t        j                  t        |             Y d}~yd}~ww xY w)z;`func(*args, **kwargs)` may replace currently waiting task.N)r   lenmaxlenpopleftdonepopcancel
appendleftr   submitappend	Exception	tqdm_autowritestr)r   funcargskwargsr   runningwaitinges           r   r   zMonoWorker.submit   s    ,,w<7>>)oo'G<<>w<%kkmGNN$""7+	&dii&&t=d=f=G NN7#N	  	$OOCF##	$s    B5 5	C&>C!!C&N)__name__
__module____qualname____doc__r   r    r   r   r   r      s    $r   N)r*   collectionsr   concurrent.futuresr   autor   r   
__author____all__objectr   r+   r   r   <module>r2      s4     1 $k]+
. r   