Ë
    äÞËjÁ  ã                  ól   — d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	 erddl
mZ d	d„Z e«       ZdgZy)
uû  :module: watchdog.observers
:synopsis: Observer that picks a native implementation if available.
:author: yesudeep@google.com (Yesudeep Mangalapilly)
:author: contact@tiger-222.fr (MickaÃ«l Schoentgen)

Classes
=======
.. autoclass:: Observer
   :members:
   :show-inheritance:
   :inherited-members:

Observer thread that schedules watching directories and dispatches
calls to event handlers.

You can also import platform specific classes directly and use it instead
of :class:`Observer`.  Here is a list of implemented observer classes.:

============== ================================ ==============================
Class          Platforms                        Note
============== ================================ ==============================
|Inotify|      Linux 2.6.13+                    ``inotify(7)`` based observer
|FSEvents|     macOS                            FSEvents based observer
|Kqueue|       macOS and BSD with kqueue(2)     ``kqueue(2)`` based observer
|WinApi|       MS Windows                       Windows API-based observer
|Polling|      Any                              fallback implementation
============== ================================ ==============================

.. |Inotify|     replace:: :class:`.inotify.InotifyObserver`
.. |FSEvents|    replace:: :class:`.fsevents.FSEventsObserver`
.. |Kqueue|      replace:: :class:`.kqueue.KqueueObserver`
.. |WinApi|      replace:: :class:`.read_directory_changes.WindowsApiObserver`
.. |Polling|     replace:: :class:`.polling.PollingObserver`

é    )ÚannotationsN)ÚTYPE_CHECKING)ÚUnsupportedLibcÚplatform)ÚBaseObserverSubclassCallablec                 óB  — t        j                  «       r+t        j                  t        «      5  ddlm}  | cd d d «       S t        j                  «       r		 ddlm	} |S t        j                  «       r		 ddlm} |S t        j$                  «       rddlm} |S dd	lm} |S # 1 sw Y   ŒxY w# t        $ rG 	 ddlm} t        j                  d«       |cY S # t        $ r t        j                  d«       Y nw xY wY Œcw xY w# t        $ r t        j                  d«       Y Œ‡w xY w)
Nr   )ÚInotifyObserver)ÚFSEventsObserver)ÚKqueueObserverz.Failed to import fsevents. Fall back to kqueuez;Failed to import fsevents and kqueue. Fall back to polling.)ÚWindowsApiObserverz@Failed to import `read_directory_changes`. Fall back to polling.)ÚPollingObserver)r   Úis_linuxÚ
contextlibÚsuppressr   Úwatchdog.observers.inotifyr	   Ú	is_darwinÚwatchdog.observers.fseventsr
   Ú	ExceptionÚwatchdog.observers.kqueuer   ÚwarningsÚwarnÚ
is_windowsÚ)watchdog.observers.read_directory_changesr   Úis_bsdÚwatchdog.observers.pollingr   )r	   r
   r   r   r   s        úX/var/www/photos/backend/venv/lib/python3.12/site-packages/watchdog/observers/__init__.pyÚ_get_observer_clsr   @   s  € Ü×ÑÔÜ× Ñ ¤Ó1ñ 	#ÝBà"÷	#ñ 	#ô 
×	Ñ	Ô	ð	$ÝDð $Ð#Ü	×	Ñ	Ô	ð	&ÝTð &Ð%Ü	�‰Ô	Ý<àÐå:àÐ÷?	#ð 	#ûô ò 	&ð&ÝDô —‘ÐNÔOØ%Ò%øô	 ò ]Ü—‘Ð[Ö\ð]úÙ\ð		&ûô ò 	^Ü�M‰MÐ\Ö]ð	^úsS   ®BÁB* Á2C= ÂB'Â*	C:Â4CÂ:C:ÃC4Ã1C:Ã3C4Ã4C:Ã9C:Ã=DÄDÚObserver)Úreturnr   )Ú__doc__Ú
__future__r   r   r   Útypingr   Úwatchdog.utilsr   r   Úwatchdog.observers.apir   r   r   Ú__all__© ó    r   ú<module>r(      s9   ðñ "õH #ã Û Ý  ç 4áÝCó!ñH Ó€àˆ,�r'   