Ë
    Bü´j­  ã                   ól   — d dl Z d dlmZmZmZ d dlmZ d dlmZ ddgZ G d„ de	«      Z
 G d„ de«      Zy)	é    N)ÚEventÚThreadÚcurrent_thread)Útime)ÚwarnÚTMonitorÚTqdmSynchronisationWarningc                   ó   — e Zd ZdZy)r	   zr
    tqdm multi-thread/-process errors which may cause incorrect nesting
    but otherwise no adverse effects
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úK/root/workspace/ytshorts/venv/lib/python3.12/site-packages/tqdm/_monitor.pyr	   r	   	   s   „ òr   c                   ó8   — e Zd ZdZi Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y)	r   a^  
    Monitoring thread for tqdm bars.
    Monitors if tqdm bars are taking too much time to display
    and readjusts miniters automatically if necessary.

    Parameters
    ----------
    tqdm_cls  : class
        tqdm class to use (can be core tqdm or a submodule).
    sleep_interval  : float
        Time to sleep between monitoring checks.
    c                 óf  — t        j                  | d¬«       d| _        d| _        || _        || _        | j                  j                  dt        «      | _	         | j                  j                  dt        «      «       | _        t        j                  | j                  «       | j                  «        y )NÚtqdm_monitor)ÚnameTr   r   r   )r   Ú__init__ÚdaemonÚwokenÚtqdm_clsÚsleep_intervalÚ_testÚgetr   Ú_timer   Ú
was_killedÚatexitÚregisterÚ_atexit_signalÚstart)Úselfr   r   s      r   r   zTMonitor.__init__   sy   € Ü�‰˜ >Õ2ØˆŒØˆŒ
Ø ˆŒØ,ˆÔØ—Z‘Z—^‘^ F¬DÓ1ˆŒ
Ø8˜$Ÿ*™*Ÿ.™.¨´%Ó8Ó:ˆŒÜ�‰˜×+Ñ+Ô,Ø�
‰
�r   c                 ó8   — | j                   j                  «        y)zÎ
        Non-joining shutdown signal.
        Avoids deadlocks at interpreter exit from other threads, dead forks, etc.
        This daemon thread is auto-reaped on shutdown without needing a join.
        N)r   Úset©r#   s    r   r!   zTMonitor._atexit_signal*   s   € ð 	�‰×ÑÕr   c                 óŽ   — | j                   j                  «        | t        «       ur| j                  «        | j	                  «       S ©N)r   r%   r   ÚjoinÚreportr&   s    r   ÚexitzTMonitor.exit2   s2   € Ø�‰×ÑÔØ”~Ó'Ñ'Ø�I‰IŒKØ�{‰{‹}Ðr   c                 óˆ   — | j                   j                  j                  «       D �cg c]  }t        |d«      r|‘Œ c}S c c}w )NÚstart_t)r   Ú
_instancesÚcopyÚhasattr)r#   Úis     r   Úget_instanceszTMonitor.get_instances8   s>   € àŸ=™=×3Ñ3×8Ñ8Ó:ö *�aä˜1˜iÔ(ò ò *ð 	*ùò *s   §?c                 ó€  — | j                  «       }	 || _        | j                  j                  | j                  «       | j                  j                  «       ry | j                  j                  «       5  | j                  «       }| j                  «       }|D ]k  }| j                  j                  «       r
 d d d «       y |j                  dkD  r5||j                  z
  |j                  k\  rd|_	        |j                  d¬«       ~Œm || j                  «       k7  rt        dt        d¬«       ~d d d «       �Œ"# 1 sw Y   ŒxY w)NTé   )ÚnolockzOSet changed size during iteration (see https://github.com/tqdm/tqdm/issues/481)é   )Ú
stacklevel)r   r   r   Úwaitr   Úis_setr   Úget_lockr2   ÚminitersÚlast_print_tÚmaxintervalÚrefreshr   r	   )r#   Úcur_tÚ	instancesÚinstances       r   ÚrunzTMonitor.run>   s(  € Ø—
‘
“ˆØð ˆDŒJà�O‰O× Ñ  ×!4Ñ!4Ô5à�‰×%Ñ%Ô'Øð —‘×'Ñ'Ó)ñ ØŸ
™
›�à ×.Ñ.Ó0�	Ø )ò !�Hà—‘×-Ñ-Ô/Ø÷ð ð !×)Ñ)¨AÒ-Ø" X×%:Ñ%:Ñ:¸x×?SÑ?SÒSð -.˜Ô)à ×(Ñ(°Ð(Ô5á ð!!ð"  × 2Ñ 2Ó 4Ò4Üð Jä3ÀõCð ÷5ñ ÷ð ús   Á3AD4Â=A-D4Ä4D=c                 ó8   — | j                   j                  «        S r(   )r   r9   r&   s    r   r*   zTMonitor.reportg   s   € Ø—?‘?×)Ñ)Ó+Ð+Ð+r   N)r   r   r   r   r   r   r!   r+   r2   rB   r*   r   r   r   r   r      s-   „ ñð €Eò	òòò*ò'óR,r   )r   Ú	threadingr   r   r   r   Úwarningsr   Ú__all__ÚRuntimeWarningr	   r   r   r   r   ú<module>rH      s9   ðÛ ß 3Ñ 3Ý Ý àÐ3Ð
4€ô ô ôX,ˆvõ X,r   