o
    灛i@
                     @   sv   d dl Z d dlZd dlZddlmZmZmZ ddlmZ dd Z	dd Z
d	d
 Zdd Zdd Zedkr9e  dS dS )    N   )startfinalize_select_backend)set_command_linec                  C   s   t jddt jd} | jddtdd | jdd	td
d dgd | jddtddddgd | jddtdddgd | jddtdd d dgd |  \}}||fS )NzBThe proton command utility for profiling scripts and pytest tests.z
    proton [options] script.py [script_args] [script_options]
    proton [options] pytest [pytest_args] [script_options]
    python -m triton.profiler.proton [options] script.py [script_args] [script_options]
)descriptionusageformatter_classz-nz--namezName of the profiling session)typehelpz-bz	--backendzProfiling backendcupti)r
   r   defaultchoicesz-cz	--contextzProfiling contextshadowpythonz-dz--datazProfiling datatreez-kz--hookzProfiling hooktriton)argparseArgumentParserRawTextHelpFormatteradd_argumentstrparse_known_args)parserargstarget_args r   X/sda-disk/www/egybert/egybert_env/lib/python3.10/site-packages/triton/profiler/proton.pyparse_arguments   s   r   c                 C   s   t j| dkS )Npytest)ospathbasename)scriptr   r   r   	is_pytest   s   r$   c              
   C   s   t j| }ddd|dttjti}tj}| g| t_zJz$t|d}t|	 |d}W d    n1 s4w   Y  t
|| W n tyX } ztd|  W Y d }~nd }~ww W |t_d S W |t_d S |t_w )N__name____main____file____builtins__rbexecz.An error occurred while executing the script: )r    r!   abspathr(   sysr%   argvopencompilereadr*   	Exceptionprint)r#   r   script_pathclean_globalsoriginal_argvfilecodeer   r   r   execute_as_main   s*   
r9   c                 C   s   | j r| j nt }t| j| j| j|| jd t  |d }t|dkr)|dd  ng }t	|r9dd l
}|| nt|| t  d S )N)contextdatabackendhookr   r   )r<   r   r   namer:   r;   r=   r   lenr$   r   mainr9   r   )r   r   r<   r#   script_argsr   r   r   r   run_profiling5   s   

rB   c                  C   s   t  \} }t| | d S )N)r   rB   )r   r   r   r   r   r@   H   s   
r@   r&   )r   r,   r    profiler   r   r   flagsr   r   r$   r9   rB   r@   r%   r   r   r   r   <module>   s    
