K is- PdZddlmZddlZddlZddlmZmZmZm Z m Z m Z ddl m Z ddlmZddlmZerddlmZej&d j(Zd Zd Zd Zd ZdZdZdZdZdZdZd Z d Z!d Z"d Z#dZ$d Z%d Z&d Z'dZ(d Z)dZ*dZ+dZ,e&Z-e'Z.e+Z/d Z0dZ1dZ2dZ3dZ4dZ5GddejlZ7d3dZ8d3dZ9d3d Z:ejvd!Ze8e=_?ee eeeejeeje7e fe=_Aee9eB_?e eee eeefeB_AeefeC_Aee8eD_?eeje7feD_Aee9eF_?e eee feF_Aee8eG_?efeG_Aee:eH_?eeefeH_Aee9eI_?eee efeI_Aee8eJ_?ee e eje7efeJ_Aee8eK_?eeeeje7feK_Aee:eL_?ee eefeL_AGd"d#ejlZMejeMZNeZOed$e!e"e#gZPed%eeeeeeeegZQd&ZRd'ZSd4d(ZTd5d)ZUd6d*ZVd7d+ZWd8d,ZXd9d-ZYe d./Gd0d1ZZd:d2Z[y);u:module: watchdog.observers.winapi :synopsis: Windows API-Python interface (removes dependency on ``pywin32``). :author: theller@ctypes.org (Thomas Heller) :author: will@willmcgugan.com (Will McGugan) :author: ryan@rfk.id.au (Ryan Kelly) :author: yesudeep@gmail.com (Yesudeep Mangalapilly) :author: thomas.amland@gmail.com (Thomas Amland) :author: contact@tiger-222.fr (Mickaël Schoentgen) :platforms: windows ) annotationsN)BOOLDWORDHANDLELPCWSTRLPVOIDLPWSTR) dataclass)reduce) TYPE_CHECKING)Any @ii@iiiic4eZdZdefdefdefdefdefdeffZy) OVERLAPPEDInternal InternalHighOffset OffsetHighPointerhEventN)__name__ __module__ __qualname__rrr_fields__/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/watchdog/observers/winapi.pyrrIs9 V  5 u F 6 Hr(rc2|stj|SNctypesWinErrorvaluefuncargss r)_errcheck_boolr3Ts oo Kr(cl|stj|tk(rtj|Sr+)r-r.INVALID_HANDLE_VALUEr/s r)_errcheck_handler6Zs- oo $$oo Kr(c8|dk(rtj|S)Nlr,r/s r)_errcheck_dwordr8bs oo Kr(kernel32cBeZdZdefdefdefdej dzffZy)FileNotifyInformationNextEntryOffsetActionFileNameLengthFileNamerN)r#r$r%rr-c_charr&r'r(r)r;r;s2 E" 5 5! fmma') Hr(r;c ||zSr+r'xys r)rE Qr(c ||zSr+r'rBs r)rErErFr(iicg}|dkDrtj|td}tj|tj j z}tj||j}|j|j|jdf|j}|dkr |S||d}||z}|dkDr|S)Nrzutf-16) r-castLPFNI addressofr;r?offset string_atr>appendr=decoder<) read_buffern_bytesresultsfniptrfilename num_to_skips r)_parse_event_bufferrWsG A+kk+u-a0s#&;&D&D&K&KK##C););< HOOH$=>?)) !   N"+,/ ; A+ Nr(c~tjt}t||tt|j |k7Sr+)r-create_unicode_bufferPATH_BUFFER_SIZEGetFinalPathNameByHandleWVOLUME_NAME_NTr0)handlepathbuffs r)_is_observed_path_deletedr`s3  ' '(8 9Dfd,s ..{;L WF  LL &    & LL   (   S. ..  ::0 0##Q& & %VT 28: : s0AB C C4C:CCCCT) unsafe_hashceZdZUded<ded<ed dZed dZed dZed dZed d Z ed d Z y ) WinAPINativeEventractionstrsrc_pathc(|jtk(Sr+)rFILE_ACTION_CREATEDselfs r)is_addedzWinAPINativeEvent.is_addedb{{111r(c(|jtk(Sr+)rFILE_ACTION_REMOVEDrs r) is_removedzWinAPINativeEvent.is_removedfrr(c(|jtk(Sr+)rFILE_ACTION_MODIFIEDrs r) is_modifiedzWinAPINativeEvent.is_modifiedjs{{222r(c(|jtk(Sr+)rFILE_ACTION_RENAMED_OLD_NAMErs r)is_renamed_oldz WinAPINativeEvent.is_renamed_oldn{{:::r(c(|jtk(Sr+)rFILE_ACTION_RENAMED_NEW_NAMErs r)is_renamed_newz WinAPINativeEvent.is_renamed_newrrr(c(|jtk(Sr+)rFILE_ACTION_REMOVED_SELFrs r)is_removed_selfz!WinAPINativeEvent.is_removed_selfvs{{666r(N)returnbool) r#r$r%__annotations__propertyrrrrrrr'r(r)rr]s KM 222233;;;;77r(rct|||\}}t||}|Dcgc]\}}t||c}}Scc}}w)N)r)rrWr)r]r^rbufreventsrrs r) read_eventsr{sA(KKC f -FHN O4DFH fh / OO Os=)r0z Any | Noner1r r2r rr )rPbytesrQrrzlist[tuple[int, str]])r]rr^rrr)rtuple[bytes, int])r^rrr)r]rrNone)r]rr^rrrrr)r]rr^rrrrzlist[WinAPINativeEvent])\__doc__ __future__rrxr-ctypes.wintypesrrrrrr dataclassesr functoolsr typingr r c_void_pr0r5FILE_NOTIFY_CHANGE_FILE_NAMEFILE_NOTIFY_CHANGE_DIR_NAMEFILE_NOTIFY_CHANGE_ATTRIBUTESFILE_NOTIFY_CHANGE_SIZEFILE_NOTIFY_CHANGE_LAST_WRITEFILE_NOTIFY_CHANGE_LAST_ACCESSFILE_NOTIFY_CHANGE_CREATIONFILE_NOTIFY_CHANGE_SECURITYFILE_FLAG_BACKUP_SEMANTICSFILE_FLAG_OVERLAPPEDroFILE_SHARE_READFILE_SHARE_WRITEFILE_SHARE_DELETErqr\rFILE_ACTION_DELETEDrrrrcFILE_ACTION_OVERFLOWFILE_ACTION_ADDEDrrTHREAD_TERMINATEWAIT_ABANDONEDWAIT_IO_COMPLETION WAIT_OBJECT_0 WAIT_TIMEOUTr Structurerr3r6r8WinDLLr9r~restypeerrcheckPOINTERargtypesrnrvru CreateEventW CreateEventSetEventWaitForSingleObjectExCreateIoCompletionPortGetQueuedCompletionStatusPostQueuedCompletionStatusr[r;rJrrrprr}rZrWr`rlrsr{rrrr'r(r)rsj # HH! 'vr*00 $" $ %!&#$'!   !()3  !!  6== $ 66 $!/    FNN5FNN:  """  '         ""  y    $  FNN:  ##  '       "I 66 %!0  " "88!'"2    #%>>$(!%3"   FNN: &"&@@%)"&4#   FNN: '#%>>$)!%4"    &"F,, ,- 1"$$#%%#&#  (     /> t777:Pr(