§
    òyIf�  ã                  ó  — d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZmZ  G d	„ d
e¦  «        Zi Z e¦   «         Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zg d¢ZdS )z8holds locking functionality that works across processes.é    )ÚannotationsN)ÚABCÚabstractmethod)ÚcontextmanagerÚsuppress)ÚPath)ÚLockÚRLock)ÚFileLockÚTimeoutc                  ó8   ‡ — e Zd Zd	ˆ fd„Zd
ˆ fd„	Zdˆ fd„	Zˆ xZS )Ú_CountedFileLockÚreturnÚNonec                óz  •— t           j                             |¦  «        }t           j                             |¦  «        s@t	          t
          ¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «                              |¦  «         d| _	        t          ¦   «         | _        d S ©Nr   )ÚosÚpathÚdirnameÚisdirr   ÚOSErrorÚmakedirsÚsuperÚ__init__Úcountr
   Úthread_safe)ÚselfÚ	lock_fileÚparentÚ	__class__s      €úH/var/www/piapp/venv/lib/python3.11/site-packages/virtualenv/util/lock.pyr   z_CountedFileLock.__init__   sÒ   ø€ Ý”—’ Ñ+Ô+ˆÝŒw�}Š}˜VÑ$Ô$ð 	$Ý�'Ñ"Ô"ð $ð $Ý”˜FÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ 	‰Œ×Ò˜Ñ#Ô#Ð#ØˆŒ
Ý ™7œ7ˆÔÐÐs   ÁA5Á5A9Á<A9Nçš™™™™™©?c                óè   •— | j                              |€dn|¬¦  «        st          | j        ¦  «        ‚| j        dk    r"t          ¦   «                              ||¦  «         | xj        dz  c_        d S )Néÿÿÿÿ)Útimeoutr   é   )r   Úacquirer   r   r   r   )r   r%   Úpoll_intervalr    s      €r!   r'   z_CountedFileLock.acquire   sm   ø€ ØÔ×'Ò'°g°o°°È7Ð'ÑSÔSð 	*Ý˜$œ.Ñ)Ô)Ð)ØŒ:˜Š?ˆ?Ý‰GŒG�OŠO˜G ]Ñ3Ô3Ð3Øˆ
Œ
�a‰ˆ
Œ
ˆ
ˆ
ó    Fc                ó$  •— | j         5  | j        dk    r| j                              ¦   «          | j        dk    r"t          ¦   «                              |¬¦  «         t	          | j        dz
  d¦  «        | _        d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r&   )Úforce)r   r   Úreleaser   Úmax)r   r+   r    s     €r!   r,   z_CountedFileLock.release!   sÊ   ø€ ØÔð 	0ð 	0ØŒz˜AŠ~ˆ~ØÔ ×(Ò(Ñ*Ô*Ð*ØŒz˜QŠˆÝ‘”—’ e�Ñ,Ô,Ð,Ý˜TœZ¨!™^¨QÑ/Ô/ˆDŒJð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s   ‰A/BÂB	ÂB	©r   r   )Nr"   ©F)Ú__name__Ú
__module__Ú__qualname__r   r'   r,   Ú__classcell__©r    s   @r!   r   r      sy   ø€ € € € € ð#ð #ð #ð #ð #ð #ðð ð ð ð ð ð0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0r)   r   c                  óž   — e Zd Zdd„Zdd„Zd„ Zed„ ¦   «         Zed„ ¦   «         Zee	dd
„¦   «         ¦   «         Z
ee	d„ ¦   «         ¦   «         ZdS )ÚPathLockBaser   r   c                ó‚   — t          |¦  «        }|                     ¦   «         r|                     ¦   «         n|| _        d S ©N)r   ÚexistsÚresolver   )r   Úfolderr   s      r!   r   zPathLockBase.__init__/   s1   € Ý�F‰|Œ|ˆØ&*§k¢k¡m¤mÐ=�D—L’L‘N”N�N¸ˆŒ	ˆ	ˆ	r)   Ústrc                ó0   — | j         j        › d| j        › d�S )Nú(ú))r    r0   r   ©r   s    r!   Ú__repr__zPathLockBase.__repr__3   s    € Ø”.Ô)Ð8Ð8¨D¬IÐ8Ð8Ð8Ð8r)   c                óB   —  t          | ¦  «        | j        |z  ¦  «        S r8   )Útyper   )r   Úothers     r!   Ú__truediv__zPathLockBase.__truediv__6   s   € Ø�t�D‰zŒz˜$œ) eÑ+Ñ,Ô,Ð,r)   c                ó   — t           ‚r8   ©ÚNotImplementedErrorr@   s    r!   Ú	__enter__zPathLockBase.__enter__9   ó   € å!Ð!r)   c                ó   — t           ‚r8   rG   ©r   Úexc_typeÚexc_valÚexc_tbs       r!   Ú__exit__zPathLockBase.__exit__=   rJ   r)   Fc                ó   — t           ‚r8   rG   ©r   ÚnameÚno_blocks      r!   Úlock_for_keyzPathLockBase.lock_for_keyA   ó
   € õ "Ð!r)   c                ó   — t           ‚r8   rG   ©r   rS   s     r!   Únon_reentrant_lock_for_keyz'PathLockBase.non_reentrant_lock_for_keyF   rV   r)   Nr.   )r   r<   r/   )r0   r1   r2   r   rA   rE   r   rI   rP   r   rU   rY   © r)   r!   r6   r6   .   sÐ   € € € € € ð>ð >ð >ð >ð9ð 9ð 9ð 9ð-ð -ð -ð ð"ð "ñ „^ð"ð ð"ð "ñ „^ð"ð Øð"ð "ð "ñ „^ñ „^ð"ð Øð"ð "ñ „^ñ „^ð"ð "ð "r)   r6   c                  óž   ‡ — e Zd Zdˆ fd„Zdd„Zed„ ¦   «         Zdd„Zd„ Zd	„ Z	dd„Z
ed„ ¦   «         Zedd„¦   «         Zed„ ¦   «         Zˆ xZS )ÚReentrantFileLockr   r   c                óX   •— t          ¦   «                              |¦  «         d | _        d S r8   )r   r   Ú_lock)r   r;   r    s     €r!   r   zReentrantFileLock.__init__M   s&   ø€ Ý‰Œ×Ò˜Ñ Ô Ð ØˆŒ
ˆ
ˆ
r)   Ú c                óÒ   — t          | j        |› d�z  ¦  «        }t          5  |t          vrt	          |¦  «        t          |<   t          |         cd d d ¦  «         S # 1 swxY w Y   d S ©Nz.lock)r<   r   Ú_store_lockÚ_lock_storer   )r   rS   r   s      r!   Ú_create_lockzReentrantFileLock._create_lockQ   s«   € Ý˜œ	 t N N NÑ2Ñ3Ô3ˆ	Ýð 	*ð 	*Ø¥Ð+Ð+Ý)9¸)Ñ)DÔ)D•˜IÑ&Ý˜yÔ)ð	*ð 	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ¢-AÁA Á#A c                óâ   — | �lt           5  | j        5  | j        dk    r t                               | j        d ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S d S r   )rb   r   r   rc   Úpopr   ©Úlocks    r!   Ú	_del_lockzReentrantFileLock._del_lockX   sø   € àÐÝð :ð :˜dÔ.ð :ð :Ø”: ’?�?Ý—O’O D¤N°DÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :ð Ðs3   ŠA"’,A
¾A"Á
A	ÁA"ÁA	ÁA"Á"A&Á)A&c                ó:   — |                       | j        ¦  «         d S r8   )ri   r^   r@   s    r!   Ú__del__zReentrantFileLock.__del___   s   € Ø�Š�t”zÑ"Ô"Ð"Ð"Ð"r)   c                ól   — |                       ¦   «         | _        |                      | j        ¦  «         d S r8   )rd   r^   Ú
_lock_filer@   s    r!   rI   zReentrantFileLock.__enter__b   s/   € Ø×&Ò&Ñ(Ô(ˆŒ
Ø�Š˜œ
Ñ#Ô#Ð#Ð#Ð#r)   c                ó|   — |                       | j        ¦  «         |                      | j        ¦  «         d | _        d S r8   )Ú_releaser^   ri   rL   s       r!   rP   zReentrantFileLock.__exit__f   s5   € Ø�Š�d”jÑ!Ô!Ð!Ø�Š�t”zÑ"Ô"Ð"ØˆŒ
ˆ
ˆ
r)   Fc                ó‚  — t          t          ¦  «        5  t          j        t	          | j        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   	 |                     d¦  «         d S # t          $ rI |r‚ t          j	        d|j
        ¦  «         |                     ¦   «          |                     ¦   «          Y d S w xY w)Ng-Cëâ6?z/lock file %s present, will block until released)r   r   r   r   r<   r   r'   r   ÚloggingÚdebugr   r,   )r   rh   rT   s      r!   rm   zReentrantFileLock._lock_filek   s÷   € õ •gÑÔð 	(ð 	(ÝŒK�˜DœI™œÑ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð	Ø�LŠL˜Ñ Ô Ð Ð Ð øÝð 	ð 	ð 	Øð ØÝŒMÐKÈTÌ^Ñ\Ô\Ð\Ø�LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNˆNð	øøøs$   •'AÁAÁAÁA+ Á+AB>Â=B>c                ó.   — |                       ¦   «          d S r8   )r,   rg   s    r!   ro   zReentrantFileLock._release{   s   € à�Š‰Œˆˆˆr)   c              #  ó4  K  — |                       |¦  «        }	 	 |                      ||¦  «         d V — |                      |¦  «         n# |                      |¦  «         w xY w	 |                      |¦  «         d }d S # |                      |¦  «         d }w xY wr8   )rd   rm   ro   ri   )r   rS   rT   rh   s       r!   rU   zReentrantFileLock.lock_for_key   s­   è è € à× Ò  Ñ&Ô&ˆð	ð$Ø—’  hÑ/Ô/Ð/Ø���à—’˜dÑ#Ô#Ð#Ð#ø�—’˜dÑ#Ô#Ð#Ð#øøøÐ#à�NŠN˜4Ñ Ô Ð ØˆDˆDˆDøð �NŠN˜4Ñ Ô Ð ØˆDˆKˆKˆKˆKs   šA
 ´A> Á
A!Á!A> Á>Bc              #  ó’   K  — t          t          | j        |› d�z  ¦  «        ¦  «        5  d V — d d d ¦  «         d S # 1 swxY w Y   d S ra   )r   r<   r   rX   s     r!   rY   z,ReentrantFileLock.non_reentrant_lock_for_keyŒ   s–   è è € å�c $¤)°¨n¨n¨nÑ"<Ñ=Ô=Ñ>Ô>ð 	ð 	ØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ª<¼A ÁA r.   )r_   r/   )r0   r1   r2   r   rd   Ústaticmethodri   rk   rI   rP   rm   ro   r   rU   rY   r3   r4   s   @r!   r\   r\   L   s  ø€ € € € € ðð ð ð ð ð ð*ð *ð *ð *ð ð:ð :ñ „\ð:ð#ð #ð #ð #ð$ð $ð $ðð ð ð
ð ð ð ð  ðð ñ „\ðð ð
ð 
ð 
ñ „^ð
ð ðð ñ „^ðð ð ð ð r)   r\   c                  óH   — e Zd Zd„ Zd„ Zedd„¦   «         Zed„ ¦   «         ZdS )ÚNoOpFileLockc                ó   — t           ‚r8   rG   r@   s    r!   rI   zNoOpFileLock.__enter__“   ó   € Ý!Ð!r)   c                ó   — t           ‚r8   rG   rL   s       r!   rP   zNoOpFileLock.__exit__–   rz   r)   Fc              #  ó   K  — d V — d S r8   rZ   rR   s      r!   rU   zNoOpFileLock.lock_for_key™   ó   è è € àˆˆˆˆˆr)   c              #  ó   K  — d V — d S r8   rZ   rX   s     r!   rY   z'NoOpFileLock.non_reentrant_lock_for_key�   r}   r)   Nr/   )r0   r1   r2   rI   rP   r   rU   rY   rZ   r)   r!   rx   rx   ’   sm   € € € € € ð"ð "ð "ð"ð "ð "ð ðð ð ñ „^ðð ðð ñ „^ðð ð r)   rx   )rx   r\   r   )Ú__doc__Ú
__future__r   rq   r   Úabcr   r   Ú
contextlibr   r   Úpathlibr   Ú	threadingr	   r
   Úfilelockr   r   r   rc   rb   r6   r\   rx   Ú__all__rZ   r)   r!   ú<module>r‡      sy  ðØ >Ð >à "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ð0ð 0ð 0ð 0ð 0�xñ 0ô 0ð 0ð6 €Øˆd‰fŒf€ð"ð "ð "ð "ð "�3ñ "ô "ð "ð<Cð Cð Cð Cð C˜ñ Cô Cð CðLð ð ð ð �<ñ ô ð ð ð ð €€€r)   