o
    )ij                  
   @   s   d dl Z d dlmZ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egef ef 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Union)
_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   _/home/app/PaddleOCR-VL-test/.venv_paddleocr/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   r0   typefloatintrjustr/   )r    r'   r1   r2   r3   r4   valZval_strr   r   r   r&   6   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    Ztotal_col_widthcolumn_widthr   r   r   r%   G   s   
"zTablePrinter._print_lineN)__name__
__module____qualname__r9   r   	dataclassdictr8   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#   )r6   r8   )r   rH   rI   r   r   r   indent_stringN   s
   
rK   eventc                 C   s"   | j \}}|tjkr|jd uS dS )NF)typedr   ZPyCallmodule)rL   Z
event_typeZtyped_eventr   r   r   event_has_module_   s   


rO   c                 C   s   | j tjkS r#   )tagr   TorchOp)rL   r   r   r   event_is_torch_opf   s   rR   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   n       z"event_arg_repr.<locals>.<listcomp>](c                 S   rU   r   rV   r   r   r   r   r   p   rX   )zUnsupported type: c                 S   rU   r   )r8   r   r   r   r   r   t   rX   ztorch.r5   )r9   r:   r;   boolr8   r6   rF   jointupler   sizesZdtypereplace)argZ	sizes_strr   r   r   rW   j   s   

rW   c                 C   sF   | j tjksJ ddd | jd jD }| j d| dddS )	NrT   c                 S   rU   r   rV   r   r   r   r   r   z   rX   z'event_torch_op_repr.<locals>.<listcomp>r)   rZ   r[   zaten::r5   )rP   r   rQ   r]   rM   Zinputsr   r`   )rL   args_strr   r   r   event_torch_op_reprx   s   rc   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   rT   c                 S   s&   g | ]}|d   dt |d  qS )r   r>   r)   rV   r   r   r   r   r      s   & z%event_module_repr.<locals>.<listcomp>rZ   r[   )rO   rM   rN   
parametersr
   r]   cls_name)rL   rN   rb   r   r   r   event_module_repr~   s   rf   
curr_eventuntilc                 C   sT   d}| j } | r(|| s(t| rt|dkr|d7 }|t| 7 }| j } | r(|| r|S )Nr5   r   z <- )parentrR   r
   rc   )rg   rh   tracer   r   r   event_torch_op_stack_trace   s   rk   )rG   )r   typingr   r   Ztorch._C._profilerr   r   r   r   r   r   r8   r;   rK   r\   rO   rR   rW   rc   rf   rk   r   r   r   r   <module>   s0   		0
