
    ʆh$                       S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
Jr  SSKrSSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%  SSK&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/  SSK0J1r1J2r2J3r3J4r4  \(       a  SS	K
J5r5  SS
K0J6r6J7r7  \Rp                  " \95      r:Sr;\Rx                  " \;\=SS9  \:R}                  \;5         " S S\	5      r? " S S5      r@ " S S\45      rA " S S\35      rBg)u   :module: watchdog.observers.fsevents2
:synopsis: FSEvents based emitter implementation.
:author: thomas.amland@gmail.com (Thomas Amland)
:author: contact@tiger-222.fr (Mickaël Schoentgen)
:platforms: macOS
    )annotationsN)Thread)TYPE_CHECKING)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EventEmitter)Callable)
EventQueueObservedWatchzSwatchdog.observers.fsevents2 is deprecated and will be removed in a future release.   )category
stacklevelc                  f    \ rS rSrSrS
S jrSS jrSS jr              SS jrSS jr	Sr
g	)FSEventsQueueH   zLow level FSEvents client.c           
        [         R                  " U 5        [        R                  " 5       U l        S U l        [        U[        5      (       a  [        R                  " U5      n[        R                  " SU5      U l        S nSn[        [        U R                  UU R                  /[         U["        [$        -  5      U l        U R&                  c  Sn[)        U5      eg )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latencyerrors        T/opt/services/DDDS/venv/lib/python3.13/site-packages/watchdog/observers/fsevents2.pyr6   FSEventsQueue.__init__K   s    =B[[]dE"";;t$D **5$7
.NNZZL)+.PP
 #8E%.  $    c                0   [         R                  R                  5       R                  5       n[	        5       U l        [        U R                  U R
                  [        5        [        U R                  5      (       d7  [        U R                  5        [        U R                  5        Sn[        U5      e[        5         [        U R                  5        [        U R                  5        [        U R                  5        AU R                  R!                  S 5        g )Nz!FSEvents. Could not start stream.)AppKitNSAutoreleasePoolallocinitr   r:   r   rC   r   r   r
   r   rD   r   r   r9   put)rE   poolrI   s      rJ   runFSEventsQueue.runc   s    ''--/446,.()9)94>>K`a!$"2"233#D$4$45 !1!127E%. $**+ 0 01T--.rL   c                J    U R                   b  [        U R                   5        g g N)r:   r   rE   s    rJ   stopFSEventsQueue.stopu   s    >>%$..) &rL   c           
     
   [        XEU5       VVV	s/ s H  u  pxn	[        XxU	5      PM     n
nnn	[        R                  SU5        U
 H  n[        R                  U5        M     U R                  R                  U
5        g s  sn	nnf )Nz!FSEvents callback. Got %d events:)zipNativeEventloggerdebugr9   rR   )rE   
stream_refclient_callback_info
num_eventsevent_pathsevent_flags	event_idsrF   flags_ideventses               rJ   rB   FSEventsQueue._callbacky   sj     ILKfoHpqHp4DD+d3/Hpq8*EALLO 	 rs   A>c                d    U R                  5       (       a  U R                  R                  5       $ S$ )zVReturns a list or one or more events, or None if there are no more
events to be read.
N)is_aliver9   getrX   s    rJ   read_eventsFSEventsQueue.read_events   s$     %)MMOOt{{ ==rL   )rA   r9   r:   rC   N)rF   zbytes | strreturnNonerp   rq   )r`   intra   r+   rb   rs   rc   zlist[bytes]rd   	list[int]re   rt   rp   rq   )rp   zlist[NativeEvent] | None)__name__
__module____qualname____firstlineno____doc__r6   rT   rY   rB   rn   __static_attributes__ rL   rJ   r2   r2   H   sb    $!0$*   '  	 
 !      
 >rL   r2   c                  <    \ rS rSrSS jr\SS j5       rSS jrSrg)	r]      c                   Xl         X l        X0l        [        U[        -  5      U l        [        U[        -  5      U l        [        U[        -  5      U l	        [        U[        -  5      U l        [        U[        -  5      U l        [        U[        -  5      U l        [        U[         -  5      U l        [        U[$        -  5      U l        [        U[(        -  5      U l        [        U[,        -  5      U l        g rW   )rF   rf   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)rE   rF   rf   r   s       rJ   r6   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rL   c                    U R                   (       a  gU R                  (       a  gU R                  (       a  gU R                  (       a  gU R                  (       a  gU R
                  (       a  gg)NCreatedRemovedRenamedModifiedInodeMetaModXattrModUnknown)r   r   r   r   r   r   rX   s    rJ   _event_typeNativeEvent._event_type   sG    ??????!!!rL   c                    S[        U 5      R                   SU R                  < SU R                   SU R                   S[        U R                  5       SU R                   S3$ )N<z: path=z, type=z	, is_dir=z, flags=z, id=>)typeru   rF   r   r   hexrf   r   rX   s    rJ   __repr__NativeEvent.__repr__   sd    T
##$GDII=@P@P?Q R(()#djj/1B%VWY	
rL   )r   rf   r   r   r   r   r   r   r   r   r   r   rF   N)rF   r<   rf   rs   r   rs   rp   rq   )rp   str)	ru   rv   rw   rx   r6   propertyr   r   rz   r{   rL   rJ   r]   r]      s!    K  
rL   r]   c                  \   ^  \ rS rSrSr\SS.       S	U 4S jjjrS
S jrSS jrSr	U =r
$ )FSEventsEmitter   zBFSEvents based event emitter. Handles conversion of native events.Ntimeoutevent_filterc                  > [         TU ]  XX4S9  [        UR                  5      U l        U R                  R                  5         g )Nr   )superr6   r2   rF   	_fseventsstart)rE   event_queuewatchr   r   	__class__s        rJ   r6   FSEventsEmitter.__init__   s7     	WX&uzz2rL   c                8    U R                   R                  5         g rW   )r   rY   rX   s    rJ   on_thread_stopFSEventsEmitter.on_thread_stop   s    rL   c           	        U R                   R                  5       nUc  g SnU[        U5      :  Ga  X#   nUR                  (       GaW  US-   [        U5      :  Ga  X#S-      R                  (       a  X#S-      R                  UR                  S-   :X  a  UR
                  (       a  [        O[        nU R                  U" UR                  X#S-      R                  5      5        U R                  [        [        R                  R                  UR                  5      5      5        U R                  [        [        R                  R                  X#S-      R                  5      5      5        US-  nGO[        R                  R                  UR                  5      (       a  UR
                  (       a  [        O[        nU R                  U" UR                  5      5        U R                  [        [        R                  R                  UR                  5      5      5        GOUR
                  (       a  [         O["        nU R                  U" UR                  5      5        U R                  [        [        R                  R                  UR                  5      5      5        GOUR$                  (       d"  UR&                  (       d  UR(                  (       a@  UR
                  (       a  [        O[*        nU R                  U" UR                  5      5        GO!UR,                  (       a  UR
                  (       a  [        O[        nU R                  U" UR                  5      5        U R                  [        [        R                  R                  UR                  5      5      5        OUR.                  (       a  UR
                  (       a  [         O["        nU R                  U" UR                  5      5        U R                  [        [        R                  R                  UR                  5      5      5        US-  nU[        U5      :  a  GM  g g )Nr   r.   )r   rn   lenr   r   r   r!   r%   queue_eventrF   r    r=   dirnameexistsr   r"   r   r#   r   r   r   r$   r   r   )rE   r   rh   ieventclss         rJ   queue_eventsFSEventsEmitter.queue_events   s   ++->#f+oIE  q53v;&6a%=+C+CSTuH^H^bgbpbpstbtHt+0+=+=->C$$SVE]5G5G%HI$$%5bggooejj6Q%RS$$%5bggoofQRUmFXFX6Y%Z[FAWW^^EJJ//-2-?-?/EUC$$S_5$$%5bggooejj6Q%RS-2-?-?/EUC$$S_5$$%5bggooejj6Q%RS ""e&=&=ASAS*/*<*<&BS  UZZ1!!).););oAQ  UZZ1  !1"''//%**2M!NO!!).););oAQ  UZZ1  !1"''//%**2M!NOFAW #f+oorL   )r   )r   r,   r   r-   r   floatr   z"list[type[FileSystemEvent]] | Nonerr   r   r   rp   rq   )ru   rv   rw   rx   ry   r'   r6   r   r   rz   __classcell__r   s   @rJ   r   r      sM    L 1;?

 

 
 9
 
0 0rL   r   c                  4   ^  \ rS rSr\S.SU 4S jjjrSrU =r$ )FSEventsObserver2   r   c               *   > [         TU ]  [        US9  g )Nr   )r   r6   r   )rE   r   r   s     rJ   r6   FSEventsObserver2.__init__   s    ':rL   r{   r   )ru   rv   rw   rx   r(   r6   rz   r   r   s   @rJ   r   r      s    +C ; ; ;rL   r   )Cry   
__future__r   loggingr=   r7   r?   warnings	threadingr   typingr   rN   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*   r+   r,   r-   	getLoggerru   r^   messagewarnDeprecationWarningwarningr2   r]   r   r   r{   rL   rJ   <module>r      s    #  	             6
 
 
 q p@			8	$
_ g 2q A w D>F D>N$
 $
NBl BJ; ;rL   