Ë
    œ.æjê*  ã                  óä  — U d dl mZ g d¢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mZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d
Zej.                  dk(  r G d„ de«      Zn\	 d dlZej4                  ej6                  ej8                  ej:                  fZdZ ee	e
eh«      Z de!d<   dd„Z"dd„Z#dd„Z' G d„ de«      Zej.                  dk(  rddgZ(yg d¢Z(y# e$e%f$ r dZ&de!d<   dd„Z"dd„Z#Y Œ@w xY w) é    )Úannotations)Ú
contextlibzfilelock._utilÚpathlibÚtypingÚwarningsN)Úsuppress)ÚEACCESÚEAGAINÚENOSYSÚEWOULDBLOCK)ÚPath)ÚFinalÚcast)ÚBaseFileLock)Úremove_own_fileFÚwin32c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚUnixFileLockzHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.c                ó   — t         ‚©N©ÚNotImplementedError©Úselfs    úQ/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/filelock/_unix.pyÚ_acquirezUnixFileLock._acquire   ó   € Ü%Ð%ó    c                ó   — t         ‚r   r   r   s    r   Ú_releasezUnixFileLock._release   r   r   N©ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    © r   r   r   r      s   „ ÙVó	&ô	&r   r   TzFinal[frozenset[int]]Ú_CONTENTION_ERRNOSc                óÂ   — 	 t        j                  | t         j                  t         j                  z  «       y# t        $ r}|j
                  t        v rY d }~y‚ d }~ww xY w)NFT)ÚfcntlÚflockÚLOCK_EXÚLOCK_NBÚOSErrorÚerrnor)   ©ÚfdÚ	exceptions     r   Ú_lock_fd_nonblockingr4   0   sL   € ðÜ—‘˜B¤§¡´·±Ñ =Ô>ð
 øô	 ò Ø—?‘?Ô&8Ñ8Ü Øûðús   ‚58 ¸	AÁAÁAÁAc                óL   — t        j                  | t         j                  «       y r   )r+   r,   ÚLOCK_UN)r2   s    r   Ú
_unlock_fdr7   ;   s   € Ü�K‰K˜œEŸM™MÕ*r   zfcntl is unavailablez
Final[str]Ú_FCNTL_UNAVAILABLEc                ó*   — t        t        t        «      ‚r   ©r/   r   r8   ©Ú_fds    r   r4   r4   $   ó   € Üœ&Ô"4Ó5Ð5r   c                ó*   — t        t        t        «      ‚r   r:   r;   s    r   r7   r7   '   r=   r   c                ón   — 	 t        | «       y# t        $ r}|j                  t        k(  cY d }~S d }~ww xY w©NF)r4   r/   r0   r   r1   s     r   Ú_flock_is_missingrA   >   s5   € ð	-Ü  Ô$ð øô ò 	-Ø—?‘?¤fÑ,Õ,ûð	-ús   ‚ Ž	4—/©4¯4c                  óX   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zy)r   a,  
        Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.

        We leave the lock file in place after release. Unlinking a locked file on Unix splits
        waiters across inodes and breaks mutual exclusion for processes that coordinate via the
        same path.
        c                ó^   — | j                  «       x}�|\  }}}| j                  |||¬«       y y )N)Úcreated)Ú_acquire_nativeÚ_switch_to_soft_lock)r   Úmissing_flockr2   r3   rD   s        r   r   zUnixFileLock._acquireN   s=   € Ø!%×!5Ñ!5Ó!7Ð7�ÐDØ)6Ñ&��I˜wØ×)Ñ)¨"¨iÀÐ)ÕIð Er   c                ó>  — | j                  «       x}€y |\  }}| j                  |«       |r	 | j                  |«       d}	 t        |«      }|r| j                  |«      ry | j	                  «        t        j                  |«       y # t        $ r' | j	                  «        t        j                  |«       ‚ w xY w# t        $ rZ}|s-t        |t        «      r|j                  t        k(  r
|||fcY d }~S | j	                  «        t        j                  |«       ‚ d }~ww xY wr@   )Ú_open_lock_fileÚ_mark_descriptor_pendingÚ_apply_explicit_modeÚBaseExceptionÚ_mark_descriptor_releasedÚosÚcloser4   Ú_finalize_locked_fdÚ
isinstancer/   r0   r   )r   Úopenedr2   rD   Úlockedr3   s         r   rE   zUnixFileLock._acquire_nativeS   s  € Ø×.Ñ.Ó0Ð0�Ð9ØØ ‰KˆB�Ø×)Ñ)¨"Ô-ÙðØ×-Ñ-¨bÔ1ð ˆFð
Ü-¨bÓ1�Ù˜d×6Ñ6°rÔ:Øð ×*Ñ*Ô,Ü�H‰H�RŒLØøô) %ò Ø×2Ñ2Ô4Ü—H‘H˜R”LØðûô !ò Ù¤*¨Y¼Ô"@ÀYÇ_Á_ÔX^ÒE^Ø˜y¨'Ð1Õ1à×.Ñ.Ô0Ü—‘˜”Øûðús/   ­B ÁB9 Â0B6Â9	DÃ)DÃ+DÃ1&DÄDc                ó˜  — t         j                  t         j                  z  }t        t         dd «      x}�||z  }| j	                  «       }	 t        j
                  | j                  |t         j                  z  t         j                  z  |«      dfS # t        $ r Y nŸt        $ rf | j                  rX| j                  j                  t         j                  «      s/t        | j                  «      j                  j                  «       rY y ‚ t         $ r' t        | j                  «      j                  «       s‚ Y nw xY w| j#                  ||«      S )NÚ
O_NOFOLLOWT)rN   ÚO_RDWRÚ
O_NONBLOCKÚgetattrÚ
_open_modeÚopenÚ
_lock_pathÚO_CREATÚO_EXCLÚFileExistsErrorÚFileNotFoundErrorÚendswithÚsepr   ÚparentÚexistsÚPermissionErrorÚ_open_existing_lock_file)r   Ú
open_flagsÚ
o_nofollowÚ	open_modes       r   rI   zUnixFileLock._open_lock_files   s  € ô Ÿ™¤R§]¡]Ñ2ˆJÜ%¤b¨,¸Ó=Ð=�
ÐJØ˜jÑ(�
ØŸ™Ó)ˆIðÜ—w‘w˜tŸ™°
¼R¿Z¹ZÑ0GÌ"Ï)É)Ñ0SÐU^Ó_ÐaeÐeÐeøÜ"ò ÙÜ$ò ð —?’?¨4¯?©?×+CÑ+CÄBÇFÁFÔ+KÔPTÐUY×UdÑUdÓPe×PlÑPl×PsÑPsÔPuÙØÜ"ò ä˜DŸO™OÓ,×3Ñ3Ô5Øñ 6ðúð ×0Ñ0°¸YÓGÐGs    ÁAB Â	D7ÂA*D7Ä-D7Ä6D7c                ó�  — 	 t        j                  | j                  ||«      dfS # t        $ r Y y t        $ r Y y t
        $ rƒ 	 t        j                  | j                  |t         j                   z  t         j                  z  «      }n# t        t        f$ r Y Y y w xY wt        |«      r|dfcY S t        j                  |«       ‚ w xY wr@   )
rN   rZ   r[   r_   ÚBlockingIOErrorrd   rV   ÚO_RDONLYrA   rO   )r   rf   rh   r2   s       r   re   z%UnixFileLock._open_existing_lock_fileŽ   s¬   € ðÜ—w‘w˜tŸ™°
¸IÓFÈÐMÐMøÜ$ò ÙÜ"ò ÙÜ"ò 
ð ÜŸ™ §¡°*ÄÇ	Á	¸zÑ2IÌBÏKÉKÑ2WÓX‘BøÜ)¬?Ð;ò  Úð úä$ RÔ(Ø˜u˜9Ò$Ü—‘˜”Øð
ús>   ‚"% ¥	C°CºCÁABÂCÂBÂCÂBÂCÂ.Cc               ó¾  — | j                   xr | j                   xr | j                  d u }	 |r0|r.t        t        «      5  t        | j                  |«       d d d «       | j                  «        t        j                  |«       |s|‚| j                  «        | j                  «        y # 1 sw Y   ŒSxY w# | j                  «        t        j                  |«       w xY wr   )Ú_fallback_to_softÚ_preserve_lock_fileÚ_on_acquiredr   r/   r   r[   rM   rN   rO   Ú_fallback_to_soft_lockr   )r   r2   rG   rD   Ú
falls_backs        r   rF   z!UnixFileLock._switch_to_soft_lock¡   s·   € ð !%× 6Ñ 6Ò u¸t×?WÑ?WÐ;WÒ uÐ\`×\mÑ\mÐquÐ\uˆJð	ñ ™zÜ!¤'Ó*ñ =Ü'¨¯©¸Ô<÷=ð ×.Ñ.Ô0Ü—‘˜”ÙØ#Ð#Ø×'Ñ'Ô)Ø�M‰M�O÷=ð =ûð ×.Ñ.Ô0Ü—‘˜•ús#   ­B5 Á B)ÁB5 Â)B2Â.B5 Â5'Cc                óž   — t        j                  |«      x}j                  dk(  ry| j                  ||j                  |j
                  f«       y)Nr   FT)rN   ÚfstatÚst_nlinkÚ_mark_descriptor_ownedÚst_devÚst_ino)r   r2   Ústat_results      r   rP   z UnixFileLock._finalize_locked_fdµ   sF   € ô  "Ÿx™x¨›|Ð+�×5Ñ5¸Ò:ØØ×'Ñ'¨¨[×-?Ñ-?À×ASÑASÐ,TÔUØr   c                óº   — | j                   rCt        t        «      5  t        j                  || j
                  j                  «       d d d «       y y # 1 sw Y   y xY wr   )Úhas_explicit_moder   rd   rN   ÚfchmodÚ_contextÚmode©r   r2   s     r   rK   z!UnixFileLock._apply_explicit_mode¾   sJ   € Ø×%Ò%ÜœoÓ.ñ 6Ü—I‘I˜b $§-¡-×"4Ñ"4Ô5÷6ð 6ð &÷6ð 6ús   œ+AÁAc                ó„   — ddl m} t        j                  dd¬«       ddlm}m} t        | |«      r|| _        y || _        y )Nr   )ÚSoftFileLockzDflock not supported on this filesystem, falling back to SoftFileLocké   )Ú
stacklevel)ÚAsyncSoftFileLockÚBaseAsyncFileLock)	Úfilelock._softr€   r   ÚwarnÚfilelock.asynciorƒ   r„   rQ   Ú	__class__)r   r€   rƒ   r„   s       r   rp   z#UnixFileLock._fallback_to_soft_lockÃ   s3   € õ 4ä�M‰MÐ`ÐmnÕoßMä2<¸TÐCTÔ2UÐ.ˆD�NÐ[gˆD�Nr   c                ó    — t        d| j                  j                  «      }t        |«       | j	                  «        | j                  |d¬«       y )NÚintT)Údefault_suppresses)r   r|   Úlock_file_fdr7   rM   Ú_close_released_fdr~   s     r   r    zUnixFileLock._releaseÍ   s@   € Ü�e˜TŸ]™]×7Ñ7Ó8ˆBô �rŒNØ×*Ñ*Ô,Ø×#Ñ# B¸4Ð#Õ@r   Nr!   )r"   z tuple[int, OSError, bool] | None)r"   útuple[int, bool] | None)rf   rŠ   rh   rŠ   r"   rŽ   )r2   rŠ   rG   r/   rD   Úboolr"   r#   ©r2   rŠ   r"   r�   ©r2   rŠ   r"   r#   )r   r   r"   r#   )r$   r%   r&   r'   r   rE   rI   re   rF   rP   rK   rp   r    r(   r   r   r   r   E   s9   „ ñ	ó	Jó
	ó@	Hó6	ó&	ó(	ó	6ó
	hô	Ar   Ú	has_fcntl)r   r4   r7   r’   r�   r‘   )r<   rŠ   r"   r�   )r<   rŠ   r"   r#   ))Ú
__future__r   Ú__lazy_modules__rN   Úsysr   r   r   r0   r	   r
   r   r   r   r   r   r   r   Úfilelock._apir   Úfilelock._utilr   r’   Úplatformr   r+   r,   r-   r.   r6   Ú_Ú	frozensetr)   Ú__annotations__r4   r7   ÚImportErrorÚAttributeErrorr8   rA   Ú__all__r(   r   r   ú<module>rŸ      sù   ðÞ "âTÐ ã 	Û 
Û Ý ß 5Ó 5Ý ß å &Ý *à€	Ø‡<�<�7Òô&�|õ &ð+Ûà�[‰[˜%Ÿ-™-¨¯©¸¿¹ÐFˆð ˆ	ñ 5>¸vÀvÈ{Ð>[Ó4\ÐÐ1Ó\ó		ó	+óôOA�|ô OAðd ‡<�<�7ÒØ˜{Ð+�GâQ�Gøðs ˜Ð(ò 6Ø)?Ð˜JÓ?ó	6õ	6ð6ús   Á"2C ÃC/Ã.C/