<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
YÉjœ  ã               @   s*   d gZ ddlmZmZ G dd „ d eƒZdS )ÚWatcheré    )ÚGioÚGLibc               @   sd   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )r   c             C   s"   || _ || _i | _i | _g | _d S )N)Ú	_callbackÚ_timeoutÚ	_monitorsÚ	_timeoutsÚ_blocked)ÚselfÚcallbackZtimeout© r   ú/usr/lib/python3.6/watcher.pyÚ__init__   s
    zWatcher.__init__c             C   s:   t jj|ƒ}|jt jjd ƒ| j|< | j| jd| jƒ d S )NÚchanged)	r   ÚFileÚnew_for_pathZmonitor_directoryÚFileMonitorFlagsÚNONEr   ÚconnectÚ_file_changed_cb)r
   Z	directoryÚgfiler   r   r   Úadd_watch_dir"   s    zWatcher.add_watch_dirc             C   s:   t jj|ƒ}|jt jjd ƒ| j|< | j| jd| jƒ d S )Nr   )	r   r   r   Zmonitor_filer   r   r   r   r   )r
   Úfilenamer   r   r   r   Úadd_watch_file(   s    zWatcher.add_watch_filec             C   s
   | j jƒ S )N)r   Úkeys)r
   r   r   r   Úget_watches.   s    zWatcher.get_watchesc             C   s
   || j kS )N)r   )r
   r   r   r   r   Ú	has_watch1   s    zWatcher.has_watchc             C   s   | j |= d S )N)r   )r
   r   r   r   r   Úremove_watch4   s    zWatcher.remove_watchc             C   s   || j kr| j j|ƒ d S )N)r	   Úappend)r
   r   r   r   r   Úblock_source7   s    
zWatcher.block_sourcec             C   s   || j kr| j j|ƒ d S )N)r	   Úremove)r
   r   r   r   r   Úunblock_source;   s    
zWatcher.unblock_sourcec             C   s4   x.t | jjƒ ƒD ]}tj| j| ƒ | j|= qW d S )N)Úlistr   r   r   Úsource_remove)r
   r   r   r   r   Úclear_timeouts?   s    zWatcher.clear_timeoutsc             C   s    || j kr| j|ƒ | j|= d S )N)r	   r   r   )r
   r   r   r   r   Ú_call_callbackD   s    

zWatcher._call_callbackc             C   s¦   |j ƒ }|| jkr8|| jkr4tj| j| ƒ | j|= d S |tjjksh|tjjksh|tjj	ksh|tjj
kr¢|| jkrŠtj| j| ƒ | j|= tj| j| j|ƒ| j|< d S )N)Zget_parse_namer	   r   r   r#   r   ZFileMonitorEventZCHANGEDZCREATEDZDELETEDZATTRIBUTE_CHANGEDZtimeout_add_secondsr   r%   )r
   ZmonitorZgio_fileZgio_other_fileZeventr   r   r   r   r   I   s    


zWatcher._file_changed_cbN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r!   r$   r%   r   r   r   r   r   r      s   N)Ú__all__Zgi.repositoryr   r   Úobjectr   r   r   r   r   Ú<module>   s   