
    ^j                     n    d dl mZ ddlmZ d dlmZ dZ G d d      Z G d d	e      Zd
e	ddfdZ
ddZy)    )proton   )flagswraps__proton_launch_metadatac                   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     `/var/www/ramen.bs-engineer-server.com/venv/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dii(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>.wrapper.   sG    !!%%dii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 fdZ xZS )metadata_statec                 ,    t         |   t               y r   )superr   COMPUTE_METADATA_SCOPE_NAME)r   	__class__s    r   r   zmetadata_state.__init__<   s    45r   r'   )r(   r)   r*   r   __classcell__)r3   s   @r   r/   r/   :   s    6 6r   r/   r   r   Nc                 .    t        j                  |        y r   )r   r   r   s    r   r   r   @   s    $r   c                  ,    t        j                          y r   )r   r   r-   r   r   r   r   D   s    r   r'   )triton._C.libprotonr   r   r   	functoolsr   r2   r
   r/   r,   r   r   r-   r   r   <module>r9      sC    3  8 / /d6U 6 c  d  r   