Ë
    ­Ó^jŠ  ã                  óà   — U d dl m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
mZmZ ddlmZmZ ddlmZ d	Zd
ed<   dZded<   ed   Z G d„ de	«      Z G d„ de«      Zdd„Zdd„Zdd„Zg d¢Zy)é    )ÚannotationsN)Úsuppress)ÚFinalÚLiteralÚ
NamedTupleé   )Ú	host_nameÚprocess_start_token)ÚSoftFileLockÚ_read_lock_file)Ú	write_allz
filelock/2z
Final[str]Ú	_PROTOCOLiÿÿÿz
Final[int]Ú_MAX_PID)ÚleaseÚunknownc                  óZ   — e Zd ZU dZded<   ded<   ded<   dZd	ed
<   dZded<   dZded<   y)ÚOwnerRecordz+The owner published in a protocol 2 marker.ÚintÚpidÚstrÚhostnameÚ	OwnerModeÚmodeNú
str | NoneÚtokenzfloat | NoneÚlease_durationú
int | NoneÚstart)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r   © ó    ú[/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/filelock/_marker.pyr   r      s2   … Ù5à	ƒHØƒMØ
ƒOØ€Eˆ:ÓØ#'€N�LÓ'Ø€Eˆ:Ôr%   r   c                  ór   — e Zd ZU dZded<   edd„«       Zedd„«       Zedd„«       Zdd„Z	dd„Z
dd	„Zdd
„Zy)ÚMarkerSoftFileLockzAAn existence lock whose marker carries a protocol 2 owner record.r   Ú_owner_modec                ó"   — | j                  «       S )z­
        The owner named by the marker on disk.

        :returns: the published record, or ``None`` when no marker exists or its record is malformed or protocol 1

        )Ú_read_owner©Úselfs    r&   ÚownerzMarkerSoftFileLock.owner)   s   € ð ×ÑÓ!Ð!r%   c                óB   — | j                  «       x}€dS |j                  S )z¬
        The PID of the process holding this lock, read from the marker.

        :returns: the PID, or ``None`` when no marker exists or its record is unreadable

        N)r+   r   ©r-   r.   s     r&   r   zMarkerSoftFileLock.pid3   s&   € ð "&×!1Ñ!1Ó!3Ð3˜Ð<ˆtÐKÀ%Ç)Á)ÐKr%   c                ó¢   — | j                  «       }|duxr: |j                  t        j                  «       k(  xr |j                  t        «       k(  S )z“
        Whether the marker on disk names this process.

        :returns: ``True`` when the marker's PID and hostname match this process

        N)r+   r   ÚosÚgetpidr   r	   r0   s     r&   Úis_lock_held_by_usz%MarkerSoftFileLock.is_lock_held_by_us=   sC   € ð × Ñ Ó"ˆØ˜DÐ Ò_ U§Y¡Y´"·)±)³+Ñ%=Ò_À%Ç.Á.ÔT]ÓT_ÑB_Ð_r%   c                ó$   — | j                  «        y)a-  
        Remove the marker whoever holds it, so a later contender can acquire.

        Forced breaking voids mutual exclusion: the previous holder keeps running and keeps using whatever the lock
        protects. Reserve it for an operator clearing a marker whose holder is known to be gone.
        N)Ú
break_lockr,   s    r&   Úforce_breakzMarkerSoftFileLock.force_breakH   s   € ð 	�‰Õr%   c                ó˜   — t        t        t        «      5  t        t	        | j
                  «      d   «      cd d d «       S # 1 sw Y   y xY w)Nr   )r   ÚOSErrorÚ
ValueErrorÚparse_markerr   Ú	lock_filer,   s    r&   r+   zMarkerSoftFileLock._read_ownerQ   s>   € Ü”gœzÓ*ñ 	DÜ¤°·±Ó ?ÀÑ BÓC÷	D÷ 	Dñ 	Dàús   •!A Á A	c                óJ   — t        |t        | j                  «       «      «       y )N)r   Úencode_markerÚ_published_record)r-   Úfds     r&   Ú_write_lock_infoz#MarkerSoftFileLock._write_lock_infoV   s   € Ü�"”m D×$:Ñ$:Ó$<Ó=Õ>r%   c           	     óž   — t        t        j                  «       t        «       | j                  t        t        j                  «       «      ¬«      S )N)r   r   r   r   )r   r2   r3   r	   r)   r
   r,   s    r&   r?   z$MarkerSoftFileLock._published_recordY   s4   € ÜÜ—	‘	“Ü“[Ø×!Ñ!Ü%¤b§i¡i£kÓ2ô	
ð 	
r%   N)ÚreturnúOwnerRecord | None)rC   r   )rC   Úbool)rC   ÚNone)r@   r   rC   rF   )rC   r   )r   r    r!   r"   r#   Úpropertyr.   r   r4   r7   r+   rA   r?   r$   r%   r&   r(   r(   #   s_   … ÙKð Óàò"ó ð"ð òLó ðLð ò`ó ð`óóó
?ô
r%   r(   c                ó¬  — t         d| j                  › �d| j                  › �d| j                  › �g}| j                  �|j                  d| j                  › �«       | j                  �|j                  d| j                  ›�«       | j                  �|j                  d| j                  › �«       dj                  d„ |D «       «      j                  «       S )	z>Render an owner record as the bytes a protocol 2 marker holds.zpid=zhost=zmode=ztoken=z	duration=zstart=Ú c              3  ó&   K  — | ]	  }|› d �–— Œ y­w)ú
Nr$   )Ú.0Úlines     r&   ú	<genexpr>z encode_marker.<locals>.<genexpr>k   s   è ø€ Ò1 4�d�V˜2”;Ñ1ùs   ‚)
r   r   r   r   r   Úappendr   r   ÚjoinÚencode)ÚrecordÚliness     r&   r>   r>   b   s»   € ä˜$˜vŸz™z˜lÐ+¨u°V·_±_Ð4EÐ-FÈ%ÐPV×P[ÑP[È}ÐH]Ð^€EØ‡|�|ÐØ�‰�v˜fŸl™l˜^Ð,Ô-Ø×ÑÐ(Ø�‰�y ×!6Ñ!6Ð 9Ð:Ô;Ø‡|�|ÐØ�‰�v˜fŸl™l˜^Ð,Ô-Ø�7‰7Ñ1¨5Ô1Ó1×8Ñ8Ó:Ð:r%   c                óÊ   — | r,| j                  «       j                  «       x}r|d   t        k7  ryi }|dd D ]   }|j                  d«      \  }}}|s y|||<   Œ" t	        |«      S )zcReturn the owner a protocol 2 marker names, or ``None`` when the record is malformed or protocol 1.r   Nr   ú=)ÚstripÚ
splitlinesr   Ú	partitionÚ_build_record)ÚcontentrS   ÚfieldsrM   ÚkeyÚ	separatorÚvalues          r&   r;   r;   n   sx   € á G§M¡M£O×$>Ñ$>Ó$@Ð@˜5Ð@ÀUÈ1ÁXÔQZÒEZØØ€FØ�a�b�	ò ˆØ $§¡¨sÓ 3ÑˆˆY˜ÙÙØˆˆsŠð	ô
 ˜Ó Ð r%   c                ó¨  — | j                  d«      x}€y |dk(  rdnd}| j                  d«      }|rd| vry 	 t        | d   «      }d| v rt        | d   «      nd }d| v rt        | d   «      nd }d|cxk  r	t        k  sy  y | j                  d	«      }|dk(  r|�|�t        j                  |«      r|d
kD  sy t        ||||||¬«      S # t        $ r Y y w xY w)Nr   r   r   Úhostr   Údurationr   r   r   r   )r   r   r   r   r   r   )Úgetr   Úfloatr:   r   ÚmathÚisfiniter   )r[   Ú	publishedr   r   r   ra   r   r   s           r&   rY   rY   {   s  € ð
 —Z‘Z Ó'Ð'ˆ	Ð0ØØ!*¨gÒ!5‘g¸9€DØ�z‰z˜&Ó!€HÙ�u FÑ*ØðÜ�&˜‘-Ó ˆØ0:¸fÑ0D”5˜ 
Ñ+Ô,È$ˆØ(/°6Ñ(9”�F˜7‘OÔ$¸tˆð �Ô”xÒØð  ØØ�J‰J�wÓ€Eð ˆw‚˜E˜M¨XÐ-=ÄdÇmÁmÐT\ÔF]ÐbjÐmnÒbnØÜ˜3¨¸ÀEÐZbÐjoÔpÐpøô ò Ùðús   ·6C Ã	CÃC)r(   r   r   r>   r;   )rR   r   rC   Úbytes)rZ   r   rC   rD   )r[   zdict[str, str]rC   rD   )Ú
__future__r   rd   r2   Ú
contextlibr   Útypingr   r   r   Ú	_identityr	   r
   Ú_softr   r   Ú_utilr   r   r#   r   r   r   r(   r>   r;   rY   Ú__all__r$   r%   r&   ú<module>ro      ss   ðÞ "ã Û 	Ý ß -Ñ -ç 5ß 0Ý ð
 %€	ˆ:Ó $à €ˆ*Ó  ð Ð&Ñ'€	ô�*ô ô<
˜ô <
ó~	;ó
!óqò8�r%   