K iD dZddlmZddlZddlZddlmZddlmZddl m Z m Z m Z m Z mZmZmZmZddlmZmZmZmZddlmZmZmZerdd lmZdd lmZdd l mZdd lmZm Z Gd deZ!GddeZ"GddeZ#y)uf:module: watchdog.observers.polling :synopsis: Polling emitter implementation. :author: yesudeep@google.com (Yesudeep Mangalapilly) :author: contact@tiger-222.fr (Mickaël Schoentgen) Classes ------- .. autoclass:: PollingObserver :members: :show-inheritance: .. autoclass:: PollingObserverVFS :members: :show-inheritance: :special-members: ) annotationsN)partial) TYPE_CHECKING)DirCreatedEventDirDeletedEventDirModifiedEvent DirMovedEventFileCreatedEventFileDeletedEventFileModifiedEventFileMovedEvent)DEFAULT_EMITTER_TIMEOUTDEFAULT_OBSERVER_TIMEOUT BaseObserver EventEmitter)DirectorySnapshotDirectorySnapshotDiffEmptyDirectorySnapshot)Iterator)Callable)FileSystemEvent) EventQueue ObservedWatchceZdZdZedej ejd dfdZddZ d dZ xZ S) PollingEmitterz[Platform-independent emitter that polls a directory to detect file system changes. N)timeout event_filterstatlistdirct||||t_t j _fd_y)N)rrcrtjjjjS)N) recursiverr)rwatchpath is_recursive)rselfrs`/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/watchdog/observers/polling.pyz)PollingEmitter.__init__..@s,GX JJOOjj-- H )super__init__r _snapshot threadingLock_lock_take_snapshot)r& event_queuer#rrrr __class__s` ``r'r+zPollingEmitter.__init__3s> eW<X,B,D^^% @ r)c.|j|_yN)r0r,)r&s r'on_thread_startzPollingEmitter.on_thread_startGs,,.r)cz|jj|ry|j5|js dddy |j }t|j|}||_ |jD]}|j t||jD]}|j t!||j"D]}|j t%||j&D] \}}|j t)||"|j*D]}|j t||j,D]}|j t/||j0D]}|j t3||j4D] \}}|j t7||" dddy#t $rI|j t|jj|jYdddywxYw#1swYyxYwr4) stopped_eventwaitr/should_keep_runningr0OSError queue_eventrr#r$stoprr, files_deletedr files_modifiedr files_createdr files_movedr dirs_deleted dirs_modifiedr dirs_createdr dirs_movedr )r&r new_snapshoteventssrc_path dest_paths r' queue_eventszPollingEmitter.queue_eventsJs'    " "7 +  ZZ" E++-" E" E  #224 +4>><HF)DN#00 =  !1(!;< ="11 >  !28!<= >"00 =  !1(!;< ='-'9'9 F#)  )!DE F#// <  !:; <"00 =  !1(!;< ="// <  !:; <'-'8'8 E#)  x!CD EC" E" E   !AB " E" E " E" Es1H1GE=H1AH.#H1-H..H11H:)r1rr#rrfloatrz"list[type[FileSystemEvent]] | NonerCallable[[str], os.stat_result]r-Callable[[str | None], Iterator[os.DirEntry]]returnNone)rMrNrrJrMrN) __name__ __module__ __qualname____doc__rosrscandirr+r5rI __classcell__r2s@r'rr.sr1;?02AC     9  . ?   (/(Er)rc*eZdZdZeddfdZxZS)PollingObserverz\Platform-independent observer that polls a directory to detect file system changes. rc0t|t|y)NrZ)r*r+r)r&rr2s r'r+zPollingObserver.__init__zs 9r)rO)rPrQrRrSrr+rVrWs@r'rYrYus,D::r)rYc8eZdZdZdd dfdZxZS)PollingObserverVFSzJFile system independent observer that polls a directory to detect changes.)polling_intervalcLtt||}t| ||y)a:param stat: stat function. See ``os.stat`` for details. :param listdir: listdir function. See ``os.scandir`` for details. :type polling_interval: int :param polling_interval: interval in seconds between polling the file system. )rrrZN)rrr*r+)r&rrr_ emitter_clsr2s r'r+zPollingObserverVFS.__init__s&n4I  .>?r))rrKrrLr_intrMrN)rPrQrRrSr+rVrWs@r'r]r]~sAT!" @- @? @  @  @ @r)r])$rS __future__rrTr- functoolsrtypingrwatchdog.eventsrrrr r r r r watchdog.observers.apirrrrwatchdog.utils.dirsnapshotrrrcollections.abcrrrrrrrYr]r)r'rkss"#     qpgg(/@DE\DEN:l:@@r)