Ë
    ©š¾jü  ã                   ó¨   — d dl mZ d dlmZ ddlmZ ej                  Zej                  Z	 G d„ d«      Z
 G d„ de
«      Zd	ed
dfd„Zdd„Zdd
efd„Zy)é    ©Úwraps)Úprotoné   )Úflagsc                   ó4   — e Zd ZdZdeddfd„Zd„ Zd	d„Zd„ Zy)
Ústateaz  
    A context manager and decorator for entering and exiting a state.

    Usage:
        context manager:
        ```python
        with proton.state("test0"):
            foo[1,](x, y)
        ```

        decorator:
        ```python
        @proton.state("test0")
        def foo(x, y):
            ...
        ```

    Args:
        name (str): The name of the state.
    ÚnameÚreturnNc                 ó   — || _         y ©N©r
   )Úselfr
   s     ú_/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/triton/profiler/state.pyÚ__init__zstate.__init__    s	   € Øˆ�	ó    c                 óh   — t         j                  s| S t        j                  | j                  «       | S r   )r   Úprofiling_onÚ	libprotonÚenter_stater
   )r   s    r   Ú	__enter__zstate.__enter__#   s'   € Ü×!Ò!ØˆKÜ×Ñ˜dŸi™iÔ(Øˆr   c                 óN   — t         j                  sy t        j                  «        y r   )r   r   r   Ú
exit_state)r   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú__exit__zstate.__exit__)   s   € Ü×!Ò!ØÜ×ÑÕr   c                 ó2   ‡ ‡— t        ‰«      ˆˆ fd„«       }|S )Nc                  ó¾   •— t         j                  rt        j                  ‰j                  «        ‰| i |¤Ž}t         j                  rt        j
                  «        |S r   )r   r   r   r   r
   r   )ÚargsÚkwargsÚretÚfuncr   s      €€r   Úwrapperzstate.__call__.<locals>.wrapper0   sG   ø€ ä×!Ò!Ü×%Ñ% d§i¡iÔ0Ù˜Ð' Ñ'ˆCÜ×!Ò!Ü×$Ñ$Ô&ØˆJr   r   )r   r#   r$   s   `` r   Ú__call__zstate.__call__.   s    ù€ ä	ˆt‹ô	ó 
ð	ð ˆr   ©r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   r   r%   © r   r   r	   r	   
   s)   „ ñð*˜Sð  Tó òóó
r   r	   c                   ó"   ‡ — e Zd Zddˆ fd„Zˆ xZS )Úmetadata_statec                 ó6   •— t         ‰| �  t        |«      «       y r   )Úsuperr   Úget_metadata_state_name)r   Úkernel_nameÚ	__class__s     €r   r   zmetadata_state.__init__>   s   ø€ Ü‰ÑÔ0°Ó=Õ>r   r   r&   )r'   r(   r)   r   Ú__classcell__)r3   s   @r   r.   r.   <   s   ø„ ÷?ò ?r   r.   r
   r   Nc                 ó.   — t        j                  | «       y r   )r   r   r   s    r   r   r   B   s   € Ü×Ñ˜$Õr   c                  ó,   — t        j                  «        y r   )r   r   r,   r   r   r   r   F   s   € Ü×ÑÕr   c                 ó&   — | st         S t        › | › �S r   )ÚCOMPUTE_METADATA_SCOPE_NAMEÚCOMPUTE_METADATA_SCOPE_PREFIX)r2   s    r   r1   r1   J   s   € ÙÜ*Ð*Ü+Ð,¨[¨MÐ:Ð:r   r&   r   )Ú	functoolsr   Útriton._C.libprotonr   r   r   Úmetadata_scope_namer8   Úmetadata_scope_prefixr9   r	   r.   r+   r   r   r1   r,   r   r   ú<module>r>      sa   ðÝ å 3Ý à'×;Ñ;Ð Ø )× ?Ñ ?Ð ÷/ñ /ôd?�Uô ?ð �cð  ˜dó  óñ;°ô ;r   