Ë
    êmxis  ã                   ó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	   zhtqdm multi-thread/-process errors which may cause incorrect nesting
    but otherwise no adverse effectsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úD/home/htdocs/ttos/venv/lib/python3.12/site-packages/tqdm/_monitor.pyr	   r	   	   s
   „ ñ(àr   c                   ó2   — e Zd ZdZi 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                 ób  — t        j                  | «       d| _        d| _        || _        || _        | j                  j                  dt        «      | _	         | j                  j                  dt        «      «       | _        t        j                  | j                  «       | j                  «        y )NTr   r   r   )r   Ú__init__ÚdaemonÚwokenÚtqdm_clsÚsleep_intervalÚ_testÚgetr   Ú_timer   Ú
was_killedÚatexitÚregisterÚexitÚstart)Úselfr   r   s      r   r   zTMonitor.__init__   su   € Ü�‰˜ÔØˆŒØˆŒ
Ø ˆŒØ,ˆÔØ—Z‘Z—^‘^ F¬DÓ1ˆŒ
Ø8˜$Ÿ*™*Ÿ.™.¨´%Ó8Ó:ˆŒÜ�‰˜Ÿ	™	Ô"Ø�
‰
�r   c                 óŽ   — | j                   j                  «        | t        «       ur| j                  «        | j	                  «       S ©N)r   Úsetr   ÚjoinÚreport©r!   s    r   r   zTMonitor.exit)   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_instances/   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_lockr.   ÚminitersÚlast_print_tÚmaxintervalÚrefreshr   r	   )r!   Úcur_tÚ	instancesÚinstances       r   ÚrunzTMonitor.run5   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   r5   r'   s    r   r&   zTMonitor.report^   s   € Ø—?‘?×)Ñ)Ó+Ð+Ð+r   N)
r   r   r   r   r   r   r   r.   r>   r&   r   r   r   r   r      s(   „ ñð €Eò	òò*ò'óR,r   )r   Ú	threadingr   r   r   r   Úwarningsr   Ú__all__ÚRuntimeWarningr	   r   r   r   r   ú<module>rD      s9   ðÛ ß 3Ñ 3Ý Ý àÐ3Ð
4€ô	 ô 	ôP,ˆvõ P,r   