
    Foj                     r    S SK Jr  SSKJr  S SKJr  Sr " S S5      r " S S	\5      rS
\	SS4S jr
SS jrg)    )proton   )flagswraps__proton_launch_metadatac                   @    \ rS rSrSrS\SS4S jrS rSS jrS	 r	S
r
g)state   a:  
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                     Xl         g Nr   )selfr   s     O/mnt/workspace/venv-train/lib/python3.13/site-packages/triton/profiler/state.py__init__state.__init__   s    	    c                 t    [         R                  (       d  U $ [        R                  " U R                  5        U $ r   )r   profiling_on	libprotonenter_stater   )r   s    r   	__enter__state.__enter__!   s'    !!Kdii(r   c                 Z    [         R                  (       d  g [        R                  " 5         g r   )r   r   r   
exit_state)r   exc_type	exc_value	tracebacks       r   __exit__state.__exit__'   s    !!r   c                 4   ^ ^ [        T5      UU 4S j5       nU$ )Nc                     > [         R                  (       a   [        R                  " TR                  5        T" U 0 UD6n[         R                  (       a  [        R
                  " 5         U$ r   )r   r   r   r   r   r   )argskwargsretfuncr   s      r   wrapperstate.__call__.<locals>.wrapper.   sG    !!%%dii0''C!!$$&Jr   r   )r   r(   r)   s   `` r   __call__state.__call__,   s     	t	 
	 r   r   r   N)__name__
__module____qualname____firstlineno____doc__strr   r   r!   r+   __static_attributes__ r   r   r
   r
      s)    *S T 
r   r
   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )metadata_state:   c                 ,   > [         TU ]  [        5        g r   )superr   COMPUTE_METADATA_SCOPE_NAME)r   	__class__s    r   r   metadata_state.__init__<   s    45r   r5   r-   )r.   r/   r0   r1   r   r4   __classcell__)r<   s   @r   r7   r7   :   s    6 6r   r7   r   r   Nc                 0    [         R                  " U 5        g r   )r   r   r   s    r   r   r   @   s    $r   c                  .    [         R                  " 5         g r   )r   r   r5   r   r   r   r   D   s    r   r-   )triton._C.libprotonr   r   r   	functoolsr   r;   r
   r7   r3   r   r   r5   r   r   <module>rC      sC    3  8 / /d6U 6 c  d  r   