ó
    Ñ]j*  ã                  ó8  • S r SSKJr  SSKrSSKrSSKJrJr  SSKJ	r	J
r
  SSKJr  SSKJrJr  SSKJr  SS	KJrJr  \(       a  SS
KJr  SSKJr  \R2                  " \5      r " S S\5      r0 r\" 5       r " S S\5      r " S S\5      r  " S S\5      r!/ SQr"g)z8holds locking functionality that works across processes.é    )ÚannotationsN)ÚABCÚabstractmethod)ÚcontextmanagerÚsuppress)ÚPath)ÚLockÚRLock)ÚTYPE_CHECKING)ÚFileLockÚTimeout)ÚIterator)ÚTracebackTypec                  ób   ^ • \ rS rSrSU 4S jjr  S     SU 4S jjjrS	S
U 4S jjjrSrU =r$ )Ú_CountedFileLocké   c                ó
  >• [         R                  R                  U5      n[        [        5         [         R
                  " USS9  S S S 5        [        TU ]  U5        SU l        [        5       U l
        g ! , (       d  f       N4= f)NT©Úexist_okr   )ÚosÚpathÚdirnamer   ÚOSErrorÚmakedirsÚsuperÚ__init__Úcountr
   Úthread_safe)ÚselfÚ	lock_fileÚparentÚ	__class__s      €ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/virtualenv/util/lock.pyr   Ú_CountedFileLock.__init__   sY   ø€ Ü—‘—‘ Ó+ˆÜ”gÕÜ�KŠK˜¨Ò.÷ ô 	‰Ñ˜Ô#ØˆŒ
Ü ›7ˆÕ÷ Õús   °A4Á4
Bc                ó2  >• U R                   R                  Uc  SOUS9(       d  [        U R                  5      eU R                  S:X  a   [
        TU ]  X5        U =R                  S-  sl        g ! [         a    U R                   R                  5         e f = f)Néÿÿÿÿ)Útimeoutr   é   )r   Úacquirer   r    r   r   ÚBaseExceptionÚrelease)r   r'   Úpoll_intervalr"   s      €r#   r)   Ú_CountedFileLock.acquire    s‚   ø€ ð
 ×Ñ×'Ñ'°g±o±È7Ð'ÖSÜ˜$Ÿ.™.Ó)Ð)Ø�:‰:˜‹?ðÜ‘‘ Ô7ð 	�
Š
�a‰Ž
øô !ó Ø× Ñ ×(Ñ(Ô*Øðús   ÁA0 Á0&Bc                ó*  >• U R                      U R                  S:”  a\  U R                  S:X  a  [        TU ]  US9  U =R                  S-  sl        U R                  S:X  a  U R                   R                  5         S S S 5        g ! , (       d  f       g = f)Nr   r(   )Úforce)r   r   r   r+   )r   r/   r"   s     €r#   r+   Ú_CountedFileLock.release/   sf   ø€ Ø×ÓØ�z‰z˜A‹~Ø—:‘: “?Ü‘G‘O¨%�OÑ0Ø—
’
˜a‘•
Ø—:‘: “?à×$Ñ$×,Ñ,Ô.÷ ×Öús   ŽA-BÂ
B)r   r   )r    ÚstrÚreturnÚNone)Ngš™™™™™©?)r'   zfloat | Noner,   Úfloatr2   r3   ©F)r/   Úboolr2   r3   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r)   r+   Ú__static_attributes__Ú__classcell__©r"   s   @r#   r   r      s@   ø† ÷#ð !%Ø#ðàðð ðð 
÷	ð ÷/÷ /ó    r   c                  óª   • \ rS rSrSS jrSS jrSS jr\SS j5       r\        SS j5       r	\\
SSS jj5       5       r\\
SS j5       5       rS	rg
)ÚPathLockBaseé>   c                ó~   • [        U5      nUR                  5       (       a  UR                  5       U l        g UU l        g ©N)r   ÚexistsÚresolver   )r   Úfolderr   s      r#   r   ÚPathLockBase.__init__?   s(   € Ü�F‹|ˆØ&*§k¡k§m¡m�D—L‘L“Nˆ�	¸ˆ�	r>   c                óN   • U R                   R                   SU R                   S3$ )NÚ(Ú))r"   r7   r   ©r   s    r#   Ú__repr__ÚPathLockBase.__repr__C   s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨;°aÐ8Ð8r>   c                ó>   • [        U 5      " U R                  U-  5      $ rC   )Útyper   )r   Úothers     r#   Ú__truediv__ÚPathLockBase.__truediv__F   s   € Ü�DŒz˜$Ÿ)™) eÑ+Ó,Ð,r>   c                ó   • [         erC   ©ÚNotImplementedErrorrK   s    r#   Ú	__enter__ÚPathLockBase.__enter__I   s   € ä!Ð!r>   c                ó   • [         erC   rT   ©r   Úexc_typeÚexc_valÚexc_tbs       r#   Ú__exit__ÚPathLockBase.__exit__M   s
   € ô "Ð!r>   c                ó   • [         erC   rT   ©r   ÚnameÚno_blocks      r#   Úlock_for_keyÚPathLockBase.lock_for_keyS   ó
   € ô "Ð!r>   c                ó   • [         erC   rT   ©r   ra   s     r#   Únon_reentrant_lock_for_keyÚ'PathLockBase.non_reentrant_lock_for_keyX   re   r>   )r   N©rF   z
str | Pathr2   r3   )r2   r1   )rP   r1   r2   r@   ©r2   r3   ©rZ   ztype[BaseException] | Noner[   zBaseException | Noner\   zTracebackType | Noner2   r3   r5   ©ra   r1   rb   r6   r2   úIterator[None]©ra   r1   r2   rn   )r7   r8   r9   r:   r   rL   rQ   r   rV   r]   r   rc   rh   r;   © r>   r#   r@   r@   >   s‘   † ô>ô9ô-ð ó"ó ð"ð ð"Ø2ð"Ø=Qð"Ø[oð"à	ó"ó ð"ð
 Øõ"ó ó ð"ð Øó"ó ó ó"r>   r@   c                  óÊ   ^ • \ rS rSrSU 4S jjrSSS jjr\SS j5       rSS jrSS jr	        SS jr
SSS jjr\SS	 j5       r\SSS
 jj5       r\SS j5       rSrU =r$ )ÚReentrantFileLocké^   c                ó2   >• [         TU ]  U5        S U l        g rC   )r   r   Ú_lock)r   rF   r"   s     €r#   r   ÚReentrantFileLock.__init___   s   ø€ Ü‰Ñ˜Ô Øˆ�
r>   c                óÄ   • [        U R                  U S3-  5      n[           U[        ;  a  [	        U5      [        U'   [        U   sS S S 5        $ ! , (       d  f       g = f©Nz.lock)r1   r   Ú_store_lockÚ_lock_storer   )r   ra   r    s      r#   Ú_create_lockÚReentrantFileLock._create_lockc   sG   € Ü˜Ÿ	™	 t f¨E NÑ2Ó3ˆ	ÞØ¤Ó+Ü)9¸)Ó)D”˜IÑ&Ü˜yÑ)÷ �[�[ús   ¢%AÁ
Ac                óø   • U bU  [            U R                     U R                  S:X  a   [        R	                  U R
                  S 5        S S S 5        S S S 5        g g ! , (       d  f       N= f! , (       d  f       g = f)Nr   )ry   r   r   rz   Úpopr    ©Úlocks    r#   Ú	_del_lockÚReentrantFileLock._del_lockj   sJ   € àÑÞ˜d×.Ó.Ø—:‘: “?Ü—O‘O D§N¡N°DÔ9÷ /—�ð ß.Õ.ú—•ús"   ŠA+—1AÁA+Á
A(	Á$A+Á+
A9c                ó:   • U R                  U R                  5        g rC   )r�   ru   rK   s    r#   Ú__del__ÚReentrantFileLock.__del__q   s   € Ø�‰�t—z‘zÕ"r>   c                ód   • U R                  5       U l        U R                  U R                  5        g rC   )r{   ru   Ú
_lock_filerK   s    r#   rV   ÚReentrantFileLock.__enter__t   s"   € Ø×&Ñ&Ó(ˆŒ
Ø�‰˜Ÿ
™
Õ#r>   c                ó~   • U R                  U R                  5        U R                  U R                  5        S U l        g rC   )Ú_releaseru   r�   rY   s       r#   r]   ÚReentrantFileLock.__exit__x   s+   € ð 	�‰�d—j‘jÔ!Ø�‰�t—z‘zÔ"Øˆ�
r>   c                óz  • [        [        5         [        R                  " [	        U R
                  5      SS9  S S S 5         UR                  S5        g ! , (       d  f       N!= f! [         aK    U(       a  e [        R                  SUR                  5        UR                  5         UR                  5          g f = f)NTr   g-Cëâ6?z/lock file %s present, will block until released)r   r   r   r   r1   r   r)   r   ÚLOGGERÚdebugr    r+   )r   r€   rb   s      r#   r‡   ÚReentrantFileLock._lock_file   s|   € ô ”gÕÜ�KŠKœ˜DŸI™I›°Ò6÷ ð	Ø�L‰L˜Õ ÷	 Õûô
 ó 	ÞØÜ�L‰LÐJÈDÏNÉNÔ[Ø�L‰LŒNØ�L‰LŽNð	ús   �)AÁA% Á
A"Á%AB:Â9B:c                ó$   • U R                  5         g rC   )r+   r   s    r#   rŠ   ÚReentrantFileLock._release�   s   € à�‰�r>   c              #  ó  #   • U R                  U5      n  U R                  X25        S v •  U R                  U5         U R                  U5        S ng ! U R                  U5        f = f! U R                  U5        S nf = f7frC   )r{   r‡   rŠ   r�   )r   ra   rb   r€   s       r#   rc   ÚReentrantFileLock.lock_for_key“   sl   é € à× Ñ  Ó&ˆð	ð$Ø—‘ Ô/Ûà—‘˜dÕ#à�N‰N˜4Ô Ø‰Døð —‘˜dÕ#ûà�N‰N˜4Ô Ø‰Düs,   ‚A?–A «A' ½A?ÁA$Á$A' Á'A<Á<A?c              #  ó�   #   • [        [        U R                  U S3-  5      5         S v •  S S S 5        g ! , (       d  f       g = f7frx   )r   r1   r   rg   s     r#   rh   Ú,ReentrantFileLock.non_reentrant_lock_for_key    s/   é € äœc $§)¡)°°°e¨nÑ"<Ó=Õ>Û÷ ?×>Ö>üs   ‚%A§5¬	Aµ
A¿A)ru   rj   )Ú )ra   r1   r2   r   )r€   z_CountedFileLock | Noner2   r3   rk   rl   r5   )r€   r   rb   r6   r2   r3   )r€   r   r2   r3   rm   ro   )r7   r8   r9   r:   r   r{   Ústaticmethodr�   r„   rV   r]   r‡   rŠ   r   rc   rh   r;   r<   r=   s   @r#   rr   rr   ^   s‘   ø† ÷ö*ð ó:ó ð:ô#ô$ðØ2ðØ=QðØ[oðà	ôöð  óó ðð õ
ó ð
ð óó ör>   rr   c                  ód   • \ rS rSrSS jr        S	S jr\S
SS jj5       r\SS j5       rSr	g)ÚNoOpFileLocké¦   c                ó   • [         erC   rT   rK   s    r#   rV   ÚNoOpFileLock.__enter__§   s   € Ü!Ð!r>   c                ó   • [         erC   rT   rY   s       r#   r]   ÚNoOpFileLock.__exit__ª   re   r>   c              #  ó   #   • S v •  g 7frC   rp   r`   s      r#   rc   ÚNoOpFileLock.lock_for_key¯   ó   é € äùó   ‚c              #  ó   #   • S v •  g 7frC   rp   rg   s     r#   rh   Ú'NoOpFileLock.non_reentrant_lock_for_key³   r¡   r¢   rp   Nrk   rl   r5   rm   ro   )
r7   r8   r9   r:   rV   r]   r   rc   rh   r;   rp   r>   r#   r™   r™   ¦   sT   † ô"ð"Ø2ð"Ø=Qð"Ø[oð"à	ô"ð
 õó ðð óó ór>   r™   )r™   rr   r   )#Ú__doc__Ú
__future__r   Úloggingr   Úabcr   r   Ú
contextlibr   r   Úpathlibr   Ú	threadingr	   r
   Útypingr   Úfilelockr   r   Úcollections.abcr   Útypesr   Ú	getLoggerr7   r�   r   rz   ry   r@   rr   r™   Ú__all__rp   r>   r#   Ú<module>r²      s†   ðÙ >å "ã Û 	ß #ß /Ý ß !Ý  ç &æÝ(Ý#à	×	Ò	˜8Ó	$€ô!/�xô !/ðH €Ù‹f€ô"�3ô "ô@E˜ô EôP�<ô ò$�r>   