§
    eÉÝ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nk	 d dlZej        ej        ej        ej        fZdZ ee	e
eh¦  «        Z de!d<   d"d„Z"d#d„Z#n# e$e%f$ r dZ&de!d<   d$d„Z"d%d„Z#Y nw xY wd"d„Z' G d„ de¦  «        Zej        dk    rdd gZ(dS g d!¢Z(dS )&é    )Ú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dS )ÚUnixFileLockzHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.ÚreturnÚNonec                ó   — t           ‚©N©ÚNotImplementedError©Úselfs    úV/home/spazio/cosmos_universe_media/venv/lib/python3.11/site-packages/filelock/_unix.pyÚ_acquirezUnixFileLock._acquire   ó   € Ý%Ð%ó    c                ó   — t           ‚r   r   r   s    r   Ú_releasezUnixFileLock._release   r   r    N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   © r    r   r   r      sB   € € € € € ØVÐVð	&ð 	&ð 	&ð 	&ð	&ð 	&ð 	&ð 	&ð 	&ð 	&r    r   TzFinal[frozenset[int]]Ú_CONTENTION_ERRNOSÚfdÚintr   Úboolc                ó°   — 	 t          j        | t           j        t           j        z  ¦  «         n'# t          $ r}|j        t          v rY d }~dS ‚ d }~ww xY wdS )NFT)ÚfcntlÚflockÚLOCK_EXÚLOCK_NBÚOSErrorÚerrnor)   ©r*   Ú	exceptions     r   Ú_lock_fd_nonblockingr6   0   si   € ðÝ”˜B¥¤µ´Ñ =Ñ>Ô>Ð>Ð>øÝð ð ð Ø”?Õ&8Ð8Ð8Ø ˜5˜5˜5˜5˜5Øøøøøðøøøð �4s   ‚,/ ¯
A¹AÁAÁAr   c                óD   — t          j        | t           j        ¦  «         d S r   )r.   r/   ÚLOCK_UN)r*   s    r   Ú
_unlock_fdr9   ;   s   € ÝŒK˜�EœMÑ*Ô*Ð*Ð*Ð*r    zfcntl is unavailablez
Final[str]Ú_FCNTL_UNAVAILABLEÚ_fdc                ó6   — t          t          t          ¦  «        ‚r   ©r2   r   r:   ©r;   s    r   r6   r6   $   ó   € Ý�&Õ"4Ñ5Ô5Ð5r    c                ó6   — t          t          t          ¦  «        ‚r   r=   r>   s    r   r9   r9   '   r?   r    c                óv   — 	 t          | ¦  «         n'# t          $ r}|j        t          k    cY d }~S d }~ww xY wdS ©NF)r6   r2   r3   r   r4   s     r   Ú_flock_is_missingrC   >   sX   € ð	-Ý  Ñ$Ô$Ð$Ð$øÝð 	-ð 	-ð 	-Ø”?¥fÒ,Ð,Ð,Ð,Ð,Ð,Ð,øøøøð	-øøøàˆus   ‚ ’
6œ1«6±6c                  óZ   — 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dS )"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.
        r   r   c                ór   — |                       ¦   «         x}� |\  }}}|                      |||¬¦  «         d S d S )N)Úcreated)Ú_acquire_nativeÚ_switch_to_soft_lock)r   Úmissing_flockr*   r5   rF   s        r   r   zUnixFileLock._acquireN   sO   € Ø!%×!5Ò!5Ñ!7Ô!7Ð7�ÐDØ)6Ñ&��I˜wØ×)Ò)¨"¨iÀÐ)ÑIÔIÐIÐIÐIð EÐDr    ú tuple[int, OSError, bool] | Nonec                óŠ  — |                       ¦   «         x}€d S |\  }}|                      |¦  «         |rN	 |                      |¦  «         n7# t          $ r* |                      ¦   «          t          j        |¦  «         ‚ w xY wd}	 t          |¦  «        }|r|                      |¦  «        rd S nl# t          $ r_}|s/t          |t          ¦  «        r|j        t          k    r
|||fcY d }~S |                      ¦   «          t          j        |¦  «         ‚ d }~ww xY w|                      ¦   «          t          j        |¦  «         d S rB   )Ú_open_lock_fileÚ_mark_descriptor_pendingÚ_apply_explicit_modeÚBaseExceptionÚ_mark_descriptor_releasedÚosÚcloser6   Ú_finalize_locked_fdÚ
isinstancer2   r3   r   )r   Úopenedr*   rF   Úlockedr5   s         r   rG   zUnixFileLock._acquire_nativeS   s�  € Ø×.Ò.Ñ0Ô0Ð0�Ð9Ø�tØ ‰KˆB�Ø×)Ò)¨"Ñ-Ô-Ð-Øð ðØ×-Ò-¨bÑ1Ô1Ð1Ð1øÝ$ð ð ð Ø×2Ò2Ñ4Ô4Ð4Ý”H˜R‘L”L�LØðøøøð ˆFð
Ý-¨bÑ1Ô1�Øð  ˜d×6Ò6°rÑ:Ô:ð  Ø˜4øøÝ ð ð ð Øð 2¥*¨Y½Ñ"@Ô"@ð 2ÀYÄ_ÕX^ÒE^ÐE^Ø˜y¨'Ð1Ð1Ð1Ð1Ð1Ð1Ð1à×.Ò.Ñ0Ô0Ð0Ý”˜‘”�Øøøøøðøøøð ×*Ò*Ñ,Ô,Ð,ÝŒH�R‰LŒLˆLØ�4s/   ¶A Á4B Â&B/ Â/
DÂ9+DÃ$DÃ*)DÄDútuple[int, bool] | Nonec                ó|  — t           j        t           j        z  }t          t           dd ¦  «        x}�||z  }|                      ¦   «         }	 t          j        | j        |t           j        z  t           j        z  |¦  «        dfS # t          $ r Y n™t          $ r[ | j        rR| j                             t           j        ¦  «        s.t          | j        ¦  «        j                             ¦   «         rY d S ‚ t           $ r* t          | j        ¦  «                             ¦   «         s‚ Y nw xY w|                      ||¦  «        S )NÚ
O_NOFOLLOWT)rQ   Ú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   rL   zUnixFileLock._open_lock_files   sK  € õ œ¥R¤]Ñ2ˆJÝ%¥b¨,¸Ñ=Ô=Ð=�
ÐJØ˜jÑ(�
ØŸšÑ)Ô)ˆIðÝ”w˜tœ°
½R¼ZÑ0GÍ"Ì)Ñ0SÐU^Ñ_Ô_ÐaeÐeÐeøÝ"ð ð ð Ø�Ý$ð ð ð ð ”?ð  ¨4¬?×+CÒ+CÅBÄFÑ+KÔ+Kð  ÕPTÐUYÔUdÑPeÔPeÔPl×PsÒPsÑPuÔPuð  Ø˜4˜4ØÝ"ð ð ð å˜DœOÑ,Ô,×3Ò3Ñ5Ô5ð Øðð ðøøøð ×0Ò0°¸YÑGÔGÐGs   Á6B Â
D%ÂAD%Ã11D%Ä$D%rj   r+   rl   c                ó~  — 	 t          j        | j        ||¦  «        dfS # t          $ r Y d S t          $ r Y d S t
          $ r{ 	 t          j        | j        |t           j         z  t           j        z  ¦  «        }n# t          t          f$ r Y Y d S w xY wt          |¦  «        r|dfcY S t          j
        |¦  «         ‚ w xY wrB   )rQ   r^   r_   rc   ÚBlockingIOErrorrh   Ú	lock_filerZ   ÚO_RDONLYrC   rR   )r   rj   rl   r*   s       r   ri   z%UnixFileLock._open_existing_lock_fileŽ   sò   € ðÝ”w˜tœ°
¸IÑFÔFÈÐMÐMøÝ$ð ð ð Ø�t�tÝ"ð ð ð Ø�t�tÝ"ð 
ð 
ð 
ð Ýœ ¤°½r¼y¸jÑ1HÍ2Ì;Ñ1VÑWÔW�B�BøÝ)­?Ð;ð  ð  ð  Ø˜4˜4˜4ð øøøå$ RÑ(Ô(ð %Ø˜u˜9Ð$Ð$Ð$Ý”˜‘”�Øð
øøøs=   ‚ Ÿ
B<¬	B<¸	B<Á5A8Á7B<Á8BÂ	B<ÂBÂB<Â&B<r*   rI   r2   rF   r,   c               óÆ  — | j         o| j         o| j        d u }	 |rC|rAt          t          ¦  «        5  t          | j        |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          t          j	        |¦  «         n-# |                      ¦   «          t          j	        |¦  «         w xY w|s|‚|  
                    ¦   «          |                      ¦   «          d S r   )Ú_fallback_to_softÚ_preserve_lock_fileÚ_on_acquiredr   r2   r   r_   rP   rQ   rR   Ú_fallback_to_soft_lockr   )r   r*   rI   rF   Ú
falls_backs        r   rH   z!UnixFileLock._switch_to_soft_lock¡   s,  € ð !%Ô 6Ð u¸tÔ?WÐ;WÐ uÐ\`Ô\mÐquÐ\uˆJð	ð ð =˜zð =Ý!¥'Ñ*Ô*ð =ð =Ý'¨¬¸Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð ×.Ò.Ñ0Ô0Ð0Ý”˜‘”��øð ×.Ò.Ñ0Ô0Ð0Ý”˜‘”��øøøØð $Ø#Ð#Ø×'Ò'Ñ)Ô)Ð)Ø�MŠM‰OŒOˆOˆOˆOs.   šB ²AÁB ÁAÁB ÁAÁB Â*B2c                óŒ   — t          j        |¦  «        x}j        dk    rdS |                      ||j        |j        f¦  «         dS )Nr   FT)rQ   ÚfstatÚst_nlinkÚ_mark_descriptor_ownedÚst_devÚst_ino)r   r*   Ústat_results      r   rS   z UnixFileLock._finalize_locked_fdµ   sJ   € õ  "œx¨™|œ|Ð+�Ô5¸Ò:Ð:Ø�uØ×'Ò'¨¨[Ô-?ÀÔASÐ,TÑUÔUÐUØ�4r    c                ó°   — | j         rNt          t          ¦  «        5  t          j        || j        j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S r   )Úhas_explicit_moder   rh   rQ   ÚfchmodÚ_contextÚmode©r   r*   s     r   rN   z!UnixFileLock._apply_explicit_mode¾   s    € ØÔ%ð 6Ý�oÑ.Ô.ð 6ð 6Ý”I˜b $¤-Ô"4Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6ð6ð 6s   œ A	Á	AÁAr   r   c                ó€   — ddl m} t          j        dd¬¦  «         ddlm}m} t          | |¦  «        r|n|| _        d S )Nr   )ÚSoftFileLockzDflock not supported on this filesystem, falling back to SoftFileLocké   )Ú
stacklevel)ÚAsyncSoftFileLockÚBaseAsyncFileLock)	Úfilelock._softr…   r   ÚwarnÚfilelock.asynciorˆ   r‰   rT   Ú	__class__)r   r…   rˆ   r‰   s       r   ru   z#UnixFileLock._fallback_to_soft_lockÃ   sg   € ð 4Ð3Ð3Ð3Ð3Ð3åŒMÐ`ÐmnÐoÑoÔoÐoØMÐMÐMÐMÐMÐMÐMÐMå2<¸TÐCTÑ2UÔ2UÐgÐ.Ð.Ð[gˆDŒNˆNˆNr    c                ó®   — t          d| j        j        ¦  «        }t          |¦  «         |                      ¦   «          |                      |d¬¦  «         d S )Nr+   T)Údefault_suppresses)r   r�   Úlock_file_fdr9   rP   Ú_close_released_fdrƒ   s     r   r"   zUnixFileLock._releaseÍ   sT   € Ý�e˜Tœ]Ô7Ñ8Ô8ˆBõ �r‰NŒNˆNØ×*Ò*Ñ,Ô,Ð,Ø×#Ò# B¸4Ð#Ñ@Ô@Ð@Ð@Ð@r    Nr#   )r   rJ   )r   rW   )rj   r+   rl   r+   r   rW   )r*   r+   rI   r2   rF   r,   r   r   ©r*   r+   r   r,   ©r*   r+   r   r   )r   r   r   r   )r$   r%   r&   r'   r   rG   rL   ri   rH   rS   rN   ru   r"   r(   r    r   r   r   E   så   € € € € € ð	ð 	ð	Jð 	Jð 	Jð 	Jð
	ð 	ð 	ð 	ð@	Hð 	Hð 	Hð 	Hð6	ð 	ð 	ð 	ð&	ð 	ð 	ð 	ð(	ð 	ð 	ð 	ð	6ð 	6ð 	6ð 	6ð
	hð 	hð 	hð 	hð	Að 	Að 	Að 	Að 	Að 	Ar    Ú	has_fcntl)r   r6   r9   r”   r’   r“   )r;   r+   r   r,   )r;   r+   r   r   ))Ú
__future__r   Ú__lazy_modules__rQ   Úsysr   r   r   r3   r	   r
   r   r   r   r   r   r   r   Úfilelock._apir   Úfilelock._utilr   r”   Úplatformr   r.   r/   r0   r1   r8   Ú_Ú	frozensetr)   Ú__annotations__r6   r9   ÚImportErrorÚAttributeErrorr:   rC   Ú__all__r(   r    r   ú<module>r¡      sd  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "àTÐTÐTÐ à 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *à€	Ø„<�7ÒÐð&ð &ð &ð &ð &�|ñ &ô &ð &ð &ð+ØˆˆˆàŒ[˜%œ-¨¬¸¼ÐFˆð ˆ	ð 5>°I¸vÀvÈ{Ð>[Ñ4\Ô4\ÐÐ\Ð\Ð\Ñ\ð		ð 		ð 		ð 		ð	+ð 	+ð 	+ð 	+ð 	+øð5 ˜Ð(ð 6ð 6ð 6Ø)?ÐÐ?Ð?Ð?Ñ?ð	6ð 	6ð 	6ð 	6ð	6ð 	6ð 	6ð 	6ð 	6ð 	6ð6øøøð:ð ð ð ðOAð OAð OAð OAð OA�|ñ OAô OAð OAðd „<�7ÒÐØ˜{Ð+€G€G€GàQÐQÐQ€G€G€Gs   Á!B ÂB6Â5B6