o
    -i3                  	   @   s   d dl Z d dlmZ d dlmZmZmZ dd Zdd ZG dd	 d	Z		
d de
dedeege
f e
B de
fddZdedefddZdedefddZde
fddZdede
fddZdede
fddZdedeegef de
fddZdS )!    N)Callable)
_EventType_ProfilerEvent_TensorMetadatac                 C   sH   t | |kr"t | | d }| |d  } t | dkr"d| dd   } | S N   z...lenstringwidthoffset r   P/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/profiler/utils.pytrim_string_front   s   r   c                 C   sB   t | |krt | | d }| d |  } t | dkr| d } | S r   r   r
   r   r   r   trim_string_back   s   r   c                   @   sX   e Zd Zdeej deeef fddZ	de
ej fddZdd	 Zd
d Zdd ZdS )TablePrinterrow_clscolumn_widthsc                 C   sB   || _ dd t|D | _|| _t| j t| jksJ d S )Nc                 S   s   g | ]}|j qS r   )name.0xr   r   r   
<listcomp>%   s    z)TablePrinter.__init__.<locals>.<listcomp>)r   dataclassesfields
fieldnamesr   setkeys)selfr   r   r   r   r   __init__!   s    zTablePrinter.__init__rowsc                 C   s(   |    |   |D ]}| | q
d S N)_print_header_print_line
_print_row)r   r!   rowr   r   r   print_table)   s
   zTablePrinter.print_tablec                 C   sT   t | jD ]"\}}|t| jd k}| j| }tt||||s#dndd qd S )N    | 
end)	enumerater   r	   r   printr   ljust)r   iflast	col_widthr   r   r   r#   /   s   

zTablePrinter._print_headerc                 C   s   t || jsJ t| jD ]I\}}|t| jd k}| j| }t||}d}t |tr4t||	|}nt
|ttfv rFt|d|}n| |}t||sRdndd qd S )Nr(    z>.2fr)   r*   r+   )
isinstancer   r-   r   r	   r   getattrstrr   r/   typefloatintrjustr.   )r   r&   r0   r1   r2   r3   valval_strr   r   r   r%   8   s   


zTablePrinter._print_rowc                 C   s>   d}| j  D ]}||7 }qtd|dt| j d     d S )Nr   =r   r(   )r   valuesr.   r	   )r   total_col_widthcolumn_widthr   r   r   r$   I   s   
"zTablePrinter._print_lineN)__name__
__module____qualname__r8   r   	dataclassdictr7   r:   r    listr'   r#   r%   r$   r   r   r   r   r       s    

	r    r   indentindent_stylereturnc                 C   s*   |rt |tr|| |  S |||  S | S r"   )r5   r7   )r   rI   rJ   r   r   r   indent_stringP   s
   
rL   eventc                 C   s"   | j \}}|tjkr|jd uS dS )NF)typedr   PyCallmodule)rM   
event_typetyped_eventr   r   r   event_has_modulea   s   


rS   c                 C   s   | j tjkS r"   )tagr   TorchOp)rM   r   r   r   event_is_torch_oph   s   rV   c                 C   s   | d u st | ttttfv r|  S t| tr$dddd | D  dS t| tr7dddd | D  dS t| t	sEJ d	t |  dd
d | j
D }t| jdd d| dS )N[, c                 S      g | ]}t |qS r   event_arg_reprr   r   r   r   r   p       z"event_arg_repr.<locals>.<listcomp>](c                 S   rY   r   rZ   r   r   r   r   r   r   r\   )zUnsupported type: c                 S   rY   r   )r7   r   r   r   r   r   u   r\   ztorch.r4   )r8   r9   r:   boolr7   r5   rG   jointupler   sizesdtypereplace)arg	sizes_strr   r   r   r[   l   s   

r[   c                 C   sF   | j tjksJ ddd | jd jD }| j d| dddS )	NrX   c                 S   rY   r   rZ   r   r   r   r   r   {   r\   z'event_torch_op_repr.<locals>.<listcomp>r(   r^   r_   zaten::r4   )rT   r   rU   ra   rN   inputsr   re   )rM   args_strr   r   r   event_torch_op_repry   s   rj   c                 C   sZ   t | sJ | jd j}|jr*t|jdkr*ddd |jD }|j d| dS |jS )Nr(   r   rX   c                 S   s&   g | ]}|d   dt |d  qS )r   r>   r(   rZ   r   r   r   r   r      s   & z%event_module_repr.<locals>.<listcomp>r^   r_   )rS   rN   rP   
parametersr	   ra   cls_name)rM   rP   ri   r   r   r   event_module_repr   s   rm   
curr_eventuntilc                 C   sT   d}| j } | r(|| s(t| rt|dkr|d7 }|t| 7 }| j } | r(|| r|S )Nr4   r   z <- )parentrV   r	   rj   )rn   ro   tracer   r   r   event_torch_op_stack_trace   s   rr   )rH   )r   collections.abcr   torch._C._profilerr   r   r   r   r   r   r7   r:   rL   r`   rS   rV   r[   rj   rm   rr   r   r   r   r   <module>   s8   		1
