Ë
    êmxi  ã                  óŽ   — d dl mZ d dlZd dlZd dlmZ d dlmZ erd dlmZ d dl	m
Z
  ej                  e«      Z G d„ de«      Zy)	é    )ÚannotationsN)ÚTYPE_CHECKING)Ú
BaseThread)ÚCallable)ÚFileSystemEventc                  óL   ‡ — e Zd ZdZ	 	 	 	 	 	 dˆ fd„Zdd„Zdˆ fd„Zdd„Zˆ xZS )	ÚEventDebouncera˜  Background thread for debouncing event handling.

    When an event is received, wait until the configured debounce interval
    passes before calling the callback.  If additional events are received
    before the interval passes, reset the timer and keep waiting.  When the
    debouncing interval passes, the callback will be called with a list of
    events in the order in which they were received.
    c                ó~   •— t         ‰| �  «        || _        || _        g | _        t        j                  «       | _        y ©N)ÚsuperÚ__init__Údebounce_interval_secondsÚevents_callbackÚ_eventsÚ	threadingÚ	ConditionÚ_cond)Úselfr   r   Ú	__class__s      €úU/home/htdocs/ttos/venv/lib/python3.12/site-packages/watchdog/utils/event_debouncer.pyr   zEventDebouncer.__init__   s7   ø€ ô
 	‰ÑÔØ)BˆÔ&Ø.ˆÔà.0ˆŒÜ×(Ñ(Ó*ˆ�
ó    c                ó°   — | j                   5  | j                  j                  |«       | j                   j                  «        d d d «       y # 1 sw Y   y xY wr   )r   r   ÚappendÚnotify)r   Úevents     r   Úhandle_eventzEventDebouncer.handle_event'   s@   € Ø�Z‰Zñ 	 Ø�L‰L×Ñ Ô&Ø�J‰J×ÑÔ÷	 ÷ 	 ñ 	 ús   �6AÁAc                ó˜   •— | j                   5  t        ‰| �	  «        | j                   j                  «        d d d «       y # 1 sw Y   y xY wr   )r   r   Ústopr   )r   r   s    €r   r   zEventDebouncer.stop,   s8   ø€ Ø�Z‰Zñ 	 Ü‰G‰LŒNØ�J‰J×ÑÔ÷	 ÷ 	 ñ 	 ús   Ž)A Á A	c                ó’  — | j                   5  	 | j                   j                  «        | j                  rH| j                  «       r8| j                   j                  | j                  ¬«      sn| j                  «       rŒ8| j                  «       sn%| j                  }g | _        | j                  |«       Œ¤	 d d d «       y # 1 sw Y   y xY w)N)Útimeout)r   Úwaitr   Úshould_keep_runningr   r   )r   Úeventss     r   ÚrunzEventDebouncer.run1   s¦   € Ø�Z‰Zñ 	-Øà—
‘
—‘Ô!à×1Ò1à×2Ñ2Ô4Ø#Ÿz™zŸ™°t×7UÑ7U˜ÔVØ!ð ×2Ñ2Õ4ð ×/Ñ/Ô1ØàŸ™�Ø!�”Ø×$Ñ$ VÔ,ð ð ÷	-÷ 	-ñ 	-ús   �A/B=Á=6B=Â=C)r   Úintr   z'Callable[[list[FileSystemEvent]], None]ÚreturnÚNone)r   r   r&   r'   )r&   r'   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r$   Ú__classcell__)r   s   @r   r	   r	      s9   ø„ ñð
+à#&ð
+ð Að
+ð 
õ	
+ó õ
 ÷
-r   r	   )Ú
__future__r   Úloggingr   Útypingr   Úwatchdog.utilsr   r   Úwatchdog.eventsr   Ú	getLoggerr(   Úloggerr	   © r   r   ú<module>r5      s;   ðÝ "ã Û Ý  å %áÝå/à	ˆ×	Ñ	˜8Ó	$€ô1-�Zõ 1-r   