Ë
    âQ(h­  ã                   óN   — d dl Z d dlZg d¢Z G d„ de«      Z G d„ d«      Zdd„Zy)	é    N)ÚReentrancyErrorÚReentrancyLockÚnon_reentrantc                   ó   — e Zd Zy)r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/_lib/_threadsafety.pyr   r   	   s   „ Ør   r   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)r   a   
    Threading lock that raises an exception for reentrant calls.

    Calls from different threads are serialized, and nested calls from the
    same thread result to an error.

    The object can be used as a context manager or to decorate functions
    via the decorate() method.

    c                 óR   — t        j                  «       | _        d| _        || _        y ©NF)Ú	threadingÚRLockÚ_rlockÚ_enteredÚ_err_msg)ÚselfÚerr_msgs     r   Ú__init__zReentrancyLock.__init__   s   € Ü—o‘oÓ'ˆŒØˆŒØˆ�r   c                 ó¼   — | j                   j                  «        | j                  r/| j                   j                  «        t	        | j
                  «      ‚d| _        y )NT)r   Úacquirer   Úreleaser   r   )r   s    r   Ú	__enter__zReentrancyLock.__enter__   s?   € Ø�‰×ÑÔØ�=Š=Ø�K‰K×ÑÔ!Ü! $§-¡-Ó0Ð0Øˆ�r   c                 óF   — d| _         | j                  j                  «        y r   )r   r   r   )r   ÚtypeÚvalueÚ	tracebacks       r   Ú__exit__zReentrancyLock.__exit__%   s   € ØˆŒØ�‰×ÑÕr   c                 ób   ‡ — ˆ fd„}t         j                  j                  j                  ||«      S )Nc                 óD   •— ‰5   | |i |¤Žcd d d «       S # 1 sw Y   y xY w©Nr
   )ÚfuncÚaÚkwr   s      €r   Úcallerz'ReentrancyLock.decorate.<locals>.caller*   s&   ø€ Øñ &Ù˜Q�~ "‘~÷&÷ &ò &ús   „–)ÚscipyÚ_libÚ	decoratorÚdecorate)r   r$   r'   s   `  r   r+   zReentrancyLock.decorate)   s'   ø€ ô	&ô �z‰z×#Ñ#×,Ñ,¨T°6Ó:Ð:r   N)r   r   r	   Ú__doc__r   r   r    r+   r
   r   r   r   r      s   „ ñ	ò ò
òó;r   r   c                 ó   ‡ — ˆ fd„}|S )zP
    Decorate a function with a threading lock and prevent reentrant calls.
    c                 ób   •— ‰}|€| j                   › d�}t        |«      }|j                  | «      S )Nz is not re-entrant)r   r   r+   )r$   ÚmsgÚlockr   s      €r   r*   z non_reentrant.<locals>.decorator4   s7   ø€ ØˆØˆ;Ø—]‘]�OÐ#5Ð6ˆCÜ˜cÓ"ˆØ�}‰}˜TÓ"Ð"r   r
   )r   r*   s   ` r   r   r   0   s   ø€ ô#ð Ðr   r#   )r   Úscipy._lib.decoratorr(   Ú__all__ÚRuntimeErrorr   r   r   r
   r   r   ú<module>r4      s/   ðÛ ã ò A€ô	�lô 	÷ ;ñ  ;ôF
r   