ó
    ‹¤j­  ã                   ól   • S SK r S SKJrJrJr  S SKJr  S SKJr  SS/r " S S\	5      r
 " S S\5      rg)	é    N)ÚEventÚThreadÚcurrent_thread)Útime)ÚwarnÚTMonitorÚTqdmSynchronisationWarningc                   ó   • \ rS rSrSrSrg)r	   é	   zf
tqdm multi-thread/-process errors which may cause incorrect nesting
but otherwise no adverse effects
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú›C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\tqdm/_monitor.pyr	   r	   	   s   † ôr   c                   ó@   • \ rS rSrSr0 rS rS rS rS r	S r
S rS	rg
)r   é   a6  
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                 ó`  • [         R                  " U SS9  SU l        SU l        Xl        X l        U R                  R                  S[        5      U l	        U R                  R                  S[        5      " 5       U l        [        R                  " U R                  5        U R                  5         g )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   ÚTMonitor.__init__   ss   € Ü�Š˜ >Ò2ØˆŒØˆŒ
Ø ŒØ,ÔØ—Z‘Z—^‘^ F¬DÓ1ˆŒ
ØŸ*™*Ÿ.™.¨´%Ô8Ó:ˆŒÜ�Š˜×+Ñ+Ô,Ø�
‰
�r   c                 ó8   • U R                   R                  5         g)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%   ÚTMonitor._atexit_signal*   s   € ð 	�‰×ÑÕr   c                 ó�   • U R                   R                  5         U [        5       La  U R                  5         U R	                  5       $ ©N)r"   r*   r   ÚjoinÚreportr+   s    r   ÚexitÚTMonitor.exit2   s2   € Ø�‰×ÑÔØ”~Ó'Ò'Ø�I‰IŒKØ�{‰{‹}Ðr   c                 óœ   • U R                   R                  R                  5        Vs/ s H  n[        US5      (       d  M  UPM     sn$ s  snf )NÚstart_t)r   Ú
_instancesÚcopyÚhasattr)r'   Úis     r   Úget_instancesÚTMonitor.get_instances8   sD   € àŸ=™=×3Ñ3×8Ñ8Ô:ó *Ò:�aä˜1˜i×(÷ Ñ:ñ *ð 	*ùò *s   §A	Á A	c                 ó˜  • U R                  5       n Xl        U R                  R                  U R                  5        U R                  R                  5       (       a  g U R                  R                  5          U R                  5       nU R                  5       nU Ho  nU R                  R                  5       (       a
    S S S 5        g UR                  S:”  a2  XR                  -
  UR                  :¼  a  SUl	        UR                  SS9  AMq     X R                  5       :w  a  [        S[        SS9  AS S S 5        GM)  ! , (       d  f       N= f)NTé   )ÚnolockzOSet changed size during iteration (see https://github.com/tqdm/tqdm/issues/481)é   )Ú
stacklevel)r!   r   r"   Úwaitr   Úis_setr   Úget_lockr9   ÚminitersÚlast_print_tÚmaxintervalÚrefreshr   r	   )r'   Úcur_tÚ	instancesÚinstances       r   ÚrunÚTMonitor.run>   s  € Ø—
‘
“ˆØð ŒJà�O‰O× Ñ  ×!4Ñ!4Ô5à�‰×%Ñ%×'Ñ'Øð —‘×'Ñ'Õ)ØŸ
™
›�à ×.Ñ.Ó0�	Û )�Hà—‘×-Ñ-×/Ñ/Ø÷ *Ð)ð !×)Ñ)¨AÓ-Ø"×%:Ñ%:Ñ:¸x×?SÑ?SÓSð -.˜Ô)à ×(Ñ(°Ð(Ñ5â ñ! !*ð" × 2Ñ 2Ó 4Ó4Üð Jä3ÀòCð ÷5 *ò ÷ *Õ)ús   Á7AD;ÃA*D;Ä;
E	c                 ó@   • U R                   R                  5       (       + $ r.   )r"   rA   r+   s    r   r0   ÚTMonitor.reportg   s   € Ø—?‘?×)Ñ)Ó+Ô+Ð+r   )r!   r   r   r   r"   r   N)r   r   r   r   r   r   r   r%   r1   r9   rJ   r0   r   r   r   r   r   r      s-   † ñð €Eò	òòò*ò'õR,r   )r#   Ú	threadingr   r   r   r   Úwarningsr   Ú__all__ÚRuntimeWarningr	   r   r   r   r   Ú<module>rR      s9   ðÛ ß 3Ñ 3Ý Ý àÐ3Ð
4€ô ô ôX,ˆvõ X,r   