3 g @s*dgZddlmZmZGdddeZdS)Watcher)GioGLibc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)rcCs"||_||_i|_i|_g|_dS)N) _callback_timeout _monitors _timeouts_blocked)selfcallbackZtimeoutr /usr/lib/python3.6/watcher.py__init__s zWatcher.__init__cCs:tjj|}|jtjjd|j|<|j|jd|jdS)Nchanged) rFile new_for_pathZmonitor_directoryFileMonitorFlagsNONErconnect_file_changed_cb)r Z directorygfiler r r add_watch_dir"s zWatcher.add_watch_dircCs:tjj|}|jtjjd|j|<|j|jd|jdS)Nr) rrrZ monitor_filerrrrr)r filenamerr r r add_watch_file(s zWatcher.add_watch_filecCs |jjS)N)rkeys)r r r r get_watches.szWatcher.get_watchescCs ||jkS)N)r)r rr r r has_watch1szWatcher.has_watchcCs |j|=dS)N)r)r rr r r remove_watch4szWatcher.remove_watchcCs||jkr|jj|dS)N)r append)r rr r r block_source7s zWatcher.block_sourcecCs||jkr|jj|dS)N)r remove)r rr r r unblock_source;s zWatcher.unblock_sourcecCs4x.t|jjD]}tj|j||j|=qWdS)N)listrrr source_remove)r rr r r clear_timeouts?szWatcher.clear_timeoutscCs ||jkr|j||j|=dS)N)r rr)r rr r r _call_callbackDs  zWatcher._call_callbackcCs|j}||jkr8||jkr4tj|j||j|=dS|tjjksh|tjjksh|tjj ksh|tjj kr||jkrtj|j||j|=tj |j |j ||j|<dS)N)Zget_parse_namer rrr#rZFileMonitorEventZCHANGEDZCREATEDZDELETEDZATTRIBUTE_CHANGEDZtimeout_add_secondsrr%)r ZmonitorZgio_fileZgio_other_fileZeventrr r r rIs       zWatcher._file_changed_cbN)__name__ __module__ __qualname__rrrrrrrr!r$r%rr r r r rsN)__all__Z gi.repositoryrrobjectrr r r r s