File: //usr/local/lib/python3.10/dist-packages/tqdm/contrib/__pycache__/utils_worker.cpython-310.pyc
o
���g� � @ sL d Z ddlmZ ddlmZ ddlmZ ddgiZdgZ G d d� de
�Zd
S )z,
IO/concurrency helpers for `tqdm.contrib`.
� )�deque)�ThreadPoolExecutor� )�tqdmzgithub.com/� casperdcl�
MonoWorkerc @ s e Zd ZdZdd� Zdd� ZdS )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 dd�| _tg d�| _d S )N� )�max_workersr )r �poolr �futures)�self� r
�D/usr/local/lib/python3.10/dist-packages/tqdm/contrib/utils_worker.py�__init__ s zMonoWorker.__init__c
O s� | j }t|�|jkr#|�� }|�� s#t|�r|�� }|�� |�|� z| jj |g|�R i |��}W n t
yL } zt�t
|�� W Y d}~dS d}~ww |�|� |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
��
zMonoWorker.submitN)�__name__�
__module__�__qualname__�__doc__r r r
r
r
r r
s N)r&