Ë
    äÞËjt$  ã                  óØ  — d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	 ddl
mZmZmZ ddlZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6  ejn                  e8«      Z9d	Z: ejv                  e:e<¬
«       e9j{                  e:«        G d„ de	«      Z> G d„ d«      Z? G d„ de6«      Z@ G d„ de5«      ZAy)zj:module: watchdog.observers.fsevents2
:synopsis: FSEvents based emitter implementation.
:platforms: macOS
é    )ÚannotationsN)ÚThread)ÚListÚOptionalÚType)ÚCFRunLoopGetCurrentÚCFRunLoopRunÚCFRunLoopStopÚFSEventStreamCreateÚFSEventStreamInvalidateÚFSEventStreamReleaseÚ FSEventStreamScheduleWithRunLoopÚFSEventStreamStartÚFSEventStreamStopÚkCFAllocatorDefaultÚkCFRunLoopDefaultModeÚ"kFSEventStreamCreateFlagFileEventsÚkFSEventStreamCreateFlagNoDeferÚ&kFSEventStreamEventFlagItemChangeOwnerÚ"kFSEventStreamEventFlagItemCreatedÚ(kFSEventStreamEventFlagItemFinderInfoModÚ'kFSEventStreamEventFlagItemInodeMetaModÚ kFSEventStreamEventFlagItemIsDirÚ$kFSEventStreamEventFlagItemIsSymlinkÚ#kFSEventStreamEventFlagItemModifiedÚ"kFSEventStreamEventFlagItemRemovedÚ"kFSEventStreamEventFlagItemRenamedÚ#kFSEventStreamEventFlagItemXattrModÚkFSEventStreamEventIdSinceNow)	ÚDirCreatedEventÚDirDeletedEventÚDirModifiedEventÚDirMovedEventÚFileCreatedEventÚFileDeletedEventÚFileModifiedEventÚFileMovedEventÚFileSystemEvent)ÚDEFAULT_EMITTER_TIMEOUTÚDEFAULT_OBSERVER_TIMEOUTÚBaseObserverÚEventEmitterzSwatchdog.observers.fsevents2 is deprecated and will be removed in a future release.)Úcategoryc                  ó.   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚFSEventsQueuezLow level FSEvents client.c           
     ó   — t        j                  | «       t        j                  «       | _        d | _        t        |t        «      rt        j                  |«      }t        j                  d|«      | _        d }d}t        t        | j                  || j                  gt         |t"        t$        z  «      | _        | j&                  €t)        d«      ‚y )NÚNFCg      ð?z"FSEvents. Could not create stream.)r   Ú__init__ÚqueueÚQueueÚ_queueÚ	_run_loopÚ
isinstanceÚbytesÚosÚfsdecodeÚunicodedataÚ	normalizeÚ_pathr   r   Ú	_callbackr   r   r   Ú_stream_refÚOSError)ÚselfÚpathÚcontextÚlatencys       úY/var/www/photos/backend/venv/lib/python3.12/site-packages/watchdog/observers/fsevents2.pyr2   zFSEventsQueue.__init__R   s©   € Ü�‰˜ÔÜ@EÇÁÃˆŒØˆŒä�dœEÔ"Ü—;‘;˜tÓ$ˆDÜ ×*Ñ*¨5°$Ó7ˆŒ
àˆØˆÜ.ÜØ�N‰NØØ�Z‰ZˆLÜ)ØÜ+Ô.PÑPó
ˆÔð ×ÑÐ#ÜÐ>Ó?Ð?ð $ó    c                ó"  — t         j                  j                  «       j                  «       }t	        «       | _        t        | j                  | j
                  t        «       t        | j                  «      s5t        | j                  «       t        | j                  «       t        d«      ‚t        «        t        | j                  «       t        | j                  «       t        | j                  «       ~| j                  j!                  d «       y )Nz!FSEvents. Could not start stream.)ÚAppKitÚNSAutoreleasePoolÚallocÚinitr   r6   r   r?   r   r   r   r   r@   r	   r   r5   Úput)rA   Úpools     rE   ÚrunzFSEventsQueue.runi   s¸   € Ü×'Ñ'×-Ñ-Ó/×4Ñ4Ó6ˆÜ,Ó.ˆŒÜ(¨×)9Ñ)9¸4¿>¹>ÔK`ÔaÜ! $×"2Ñ"2Ô3Ü# D×$4Ñ$4Ô5Ü  ×!1Ñ!1Ô2ÜÐ=Ó>Ð>äŒÜ˜$×*Ñ*Ô+Ü × 0Ñ 0Ô1Ü˜T×-Ñ-Ô.Øà�‰�‰˜ÕrF   c                óH   — | j                   �t        | j                   «       y y ©N)r6   r
   ©rA   s    rE   ÚstopzFSEventsQueue.stopz   s   € Ø�>‰>Ð%Ü˜$Ÿ.™.Õ)ð &rF   c           
     ó  — t        |||«      D ���	cg c]  \  }}}	t        |||	«      ‘Œ }
}}}	t        j                  d|«       |
D ]  }t        j                  |«       Œ | j                  j                  |
«       y c c}	}}w )Nz!FSEvents callback. Got %d events:)ÚzipÚNativeEventÚloggerÚdebugr5   rL   )rA   Ú	streamRefÚclientCallBackInfoÚ	numEventsÚ
eventPathsÚ
eventFlagsÚeventIDsrB   ÚflagsÚ_idÚeventsÚes               rE   r>   zFSEventsQueue._callback~   sr   € ÜHKÈJÐXbÐdlÓHm×nÐnÑ4D°D¸%À”+˜d E¨3Õ/ÐnˆÒnÜ�‰Ð8¸)ÔDØò 	ˆAÜ�L‰L˜�Oð	à�‰�‰˜Õùô	 os   ’A<c                óZ   — | j                  «       r| j                  j                  «       S dS )zfReturns a list or one or more events, or None if there are no more
        events to be read.
        N)Úis_aliver5   ÚgetrQ   s    rE   Úread_eventszFSEventsQueue.read_events…   s"   € ð %)§M¡M¤Oˆt�{‰{�‰Ó Ð=¸Ð=rF   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r2   rN   rR   r>   re   © rF   rE   r/   r/   O   s   „ Ù$ò@ò.ò"*ò ó>rF   r/   c                  ó(   — e Zd Zd„ Zed„ «       Zd„ Zy)rU   c                óú  — || _         || _        || _        t        |t        z  «      | _        t        |t        z  «      | _        t        |t        z  «      | _	        t        |t        z  «      | _        t        |t        z  «      | _        t        |t        z  «      | _        t        |t         z  «      | _        t        |t$        z  «      | _        t        |t(        z  «      | _        t        |t,        z  «      | _        y rP   )rB   r^   Úevent_idÚboolr   Ú
is_createdr   Ú
is_removedr   Ú
is_renamedr   Úis_modifiedr   Úis_change_ownerr   Úis_inode_meta_modr   Úis_finder_info_modr   Úis_xattr_modr   Ú
is_symlinkr   Úis_directory)rA   rB   r^   rm   s       rE   r2   zNativeEvent.__init__�   sÑ   € ØˆŒ	ØˆŒ
Ø ˆŒÜ˜uÔ'IÑIÓJˆŒÜ˜uÔ'IÑIÓJˆŒÜ˜uÔ'IÑIÓJˆŒÜ Ô(KÑ KÓLˆÔÜ# EÔ,RÑ$RÓSˆÔÜ!% eÔ.UÑ&UÓ!VˆÔÜ"& uÔ/WÑ'WÓ"XˆÔÜ  Ô)LÑ!LÓMˆÔÜ˜uÔ'KÑKÓLˆŒÜ  Ô)IÑ!IÓJˆÕrF   c                ó    — | j                   ry| j                  ry| j                  ry| j                  ry| j                  ry| j
                  ryy)NÚCreatedÚRemovedÚRenamedÚModifiedÚInodeMetaModÚXattrModÚUnknown)ro   rp   rq   rr   rt   rv   rQ   s    rE   Ú_event_typezNativeEvent._event_typeœ   sG   € à�?Š?ØØ�?Š?ØØ�?Š?ØØ×ÒØØ×!Ò!Ø!Ø×ÒØØrF   c                óÈ   — dt        | «      j                  › d| j                  ›d| j                  › d| j                  › dt        | j                  «      › d| j                  › d�S )Nú<z: path=z, type=z	, is_dir=z, flags=z, id=ú>)Útyperf   rB   r�   rx   Úhexr^   rm   rQ   s    rE   Ú__repr__zNativeEvent.__repr__¬   sd   € à”�T“
×#Ñ#Ð$ G¨D¯I©I¨=¸À×@PÑ@PÐ?Qð RØ×(Ñ(Ð)¨´#°d·j±j³/Ð1BÀ%ÈÏÉÀÐVWðYð	
rF   N)rf   rg   rh   r2   Úpropertyr�   r‡   rj   rF   rE   rU   rU   Œ   s!   „ òKð ñó ðó
rF   rU   c                  ó4   ‡ — e Zd ZdZedfˆ fd„	Zd„ Zd„ Zˆ xZS )ÚFSEventsEmitterzBFSEvents based event emitter. Handles conversion of native events.Nc                ó’   •— t         ‰| �  ||||«       t        |j                  «      | _        | j                  j                  «        y rP   )Úsuperr2   r/   rB   Ú	_fseventsÚstart)rA   Úevent_queueÚwatchÚtimeoutÚevent_filterÚ	__class__s        €rE   r2   zFSEventsEmitter.__init__¶   s6   ø€ Ü‰Ñ˜ e¨W°lÔCÜ& u§z¡zÓ2ˆŒØ�‰×ÑÕrF   c                ó8   — | j                   j                  «        y rP   )r�   rR   rQ   s    rE   Úon_thread_stopzFSEventsEmitter.on_thread_stop»   s   € Ø�‰×ÑÕrF   c           	     ó  — | j                   j                  «       }|€y d}|t        |«      k  �rÔ||   }|j                  �r@|dz   t        |«      k  �r||dz      j                  rû||dz      j                  |j                  dz   k(  rÙ|j
                  rt        nt        }| j                   ||j                  ||dz      j                  «      «       | j                  t        t        j                  j                  |j                  «      «      «       | j                  t        t        j                  j                  ||dz      j                  «      «      «       |dz  }�n�t        j                  j                  |j                  «      r||j
                  rt        nt        }| j                   ||j                  «      «       | j                  t        t        j                  j                  |j                  «      «      «       �nè|j
                  rt         nt"        }| j                   ||j                  «      «       | j                  t        t        j                  j                  |j                  «      «      «       �nl|j$                  s|j&                  s|j(                  r;|j
                  rt        nt*        }| j                   ||j                  «      «       �n|j,                  r{|j
                  rt        nt        }| j                   ||j                  «      «       | j                  t        t        j                  j                  |j                  «      «      «       n†|j.                  rz|j
                  rt         nt"        }| j                   ||j                  «      «       | j                  t        t        j                  j                  |j                  «      «      «       |dz  }|t        |«      k  r�ŒÓy y )Nr   é   )r�   re   Úlenrq   rm   rx   r#   r'   Úqueue_eventrB   r"   r9   ÚdirnameÚexistsr    r$   r!   r%   rr   rt   rv   r&   ro   rp   )rA   r‘   r`   ÚiÚeventÚclss         rE   Úqueue_eventszFSEventsEmitter.queue_events¾   sÄ  € Ø—‘×+Ñ+Ó-ˆØˆ>ØØˆØ”#�f“+‹oØ˜1‘IˆEð ×Óð �q‘5œ3˜v›;Ó&¨6°!°a±%©=×+CÒ+CÈÈqÐSTÉuÉ×H^ÑH^Ðbg×bpÑbpÐstÑbtÒHtØ+0×+=Ò+=�-Ä>�CØ×$Ñ$¡S¨¯©°V¸AÀ¹E±]×5GÑ5GÓ%HÔIØ×$Ñ$Ô%5´b·g±g·o±oÀeÇjÁjÓ6QÓ%RÔSØ×$Ñ$Ô%5´b·g±g·o±oÀfÈQÐQRÉUÁm×FXÑFXÓ6YÓ%ZÔ[Ø˜‘F’AÜ—W‘W—^‘^ E§J¡JÔ/Ø-2×-?Ò-?�/ÔEU�CØ×$Ñ$¡S¨¯©£_Ô5Ø×$Ñ$Ô%5´b·g±g·o±oÀeÇjÁjÓ6QÓ%RÖSà-2×-?Ò-?�/ÔEU�CØ×$Ñ$¡S¨¯©£_Ô5Ø×$Ñ$Ô%5´b·g±g·o±oÀeÇjÁjÓ6QÓ%RÖSð ×"Ò" e×&=Ò&=À×ASÒASØ*/×*<Ò*<Õ&ÔBS�Ø× Ñ ¡ U§Z¡Z£Ö1à×!Ò!Ø).×);Ò);•oÔAQ�Ø× Ñ ¡ U§Z¡Z£Ô1Ø× Ñ Ô!1´"·'±'·/±/À%Ç*Á*Ó2MÓ!NÕOà×!Ò!Ø).×);Ò);•oÔAQ�Ø× Ñ ¡ U§Z¡Z£Ô1Ø× Ñ Ô!1´"·'±'·/±/À%Ç*Á*Ó2MÓ!NÔOØ�‰FˆAðW ”#�f“+ŽorF   )	rf   rg   rh   ri   r)   r2   r•   rŸ   Ú__classcell__©r“   s   @rE   rŠ   rŠ   ³   s   ø„ ÙLà3JÐY]õ ò
ö0rF   rŠ   c                  ó"   ‡ — e Zd Zefˆ fd„	Zˆ xZS )ÚFSEventsObserver2c                ó0   •— t         ‰| �  t        |¬«       y )N)r‘   )rŒ   r2   rŠ   )rA   r‘   r“   s     €rE   r2   zFSEventsObserver2.__init__ò   s   ø€ Ü‰Ñœ°'ÐÕ:rF   )rf   rg   rh   r*   r2   r    r¡   s   @rE   r£   r£   ñ   s   ø„ Ø7÷ ;ñ ;rF   r£   )Bri   Ú
__future__r   Úloggingr9   r3   r;   ÚwarningsÚ	threadingr   Útypingr   r   r   rH   ÚFSEventsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úwatchdog.eventsr    r!   r"   r#   r$   r%   r&   r'   r(   Úwatchdog.observers.apir)   r*   r+   r,   Ú	getLoggerrf   rV   ÚmessageÚwarnÚDeprecationWarningÚwarningr/   rU   rŠ   r£   rj   rF   rE   ú<module>r²      sÌ   ðñõ
 #ã Û 	Û Û Û Ý ß 'Ñ 'ó ÷÷ ÷ ÷ ÷ ÷ ó ÷6
÷ 
õ 
÷ qÓ pà	ˆ×	Ñ	˜8Ó	$€à
_€Ø €‡�ˆgÐ 2Õ 3Ø ‡�ˆwÔ ô:>�Fô :>÷z$
ñ $
ôN;�lô ;ô|;˜õ ;rF   