o
    MK&h                     @   s   d dl Z d dlmZ ddlmZ e ed ZdZ	e
ddd	d
dZe
dddddZdZd%dddddZddddZdd Zdd Zdd Zdd  Zd!d" Zd#d$ ZdS )&    N)E   )extract_chainz	style.cssz{display: inherit}u   ➤u   ⚠️u   💣u   🛑)callwarningerrorstopzFunction callz%Bug may be here
(call from user code)zException {type} raisedz%Execution interrupted
(BaseException)zqconst scrollto=id=>document.getElementById(id).scrollIntoView({behavior:'smooth',block:'nearest',inline:'start'})TF)include_js_css
local_urlsc             	   K   s  |pt dd| i|dd  }tjddi}|r"|t |t |D ]}||d ur3|jddd t|||d q$|j	( t
|D ]}|d	 D ]}|d
 dkr]|d|d  d  nqIqCW d    n1 siw   Y  W d    |S W d    |S 1 sw   Y  |S )Nexc	traceriteclass_r   z+The above exception occurred after catchingafterr
   frames	relevancer   
scrollto('idz')
 )r   r   div_script
javascript_stylestylep
_exceptionscriptreversed)r   chainr	   r
   extract_argsdoceinfor   r   A/var/www/html/venv/lib/python3.10/site-packages/tracerite/html.pyhtml_traceback   s4   



r&   r   c                C   s  |d |d }}|  tj|d  dddd|  ||kr5||r.|t|d }| j|d	d |d
 }|s=dS t|dkrSg |dd d|dd n|}| jdd t|dkr| jdd |D ]}|du rv| d qkt| | qkW d   n1 sw   Y  | jddU |D ]J}|du r| jdd | d W d   n1 sw   Y  q| jd|d d t	| |||d t
| |d  W d   n1 sw   Y  qW d   n1 sw   Y  W d   dS W d   dS 1 sw   Y  dS )z-Format single exception message and tracebacksummarymessagetype:exctyper    N
excmessager      
   .ztraceback-tabsr   ztraceback-labelsz...contentztraceback-detailsr   )r   r   r   	variables)h3r   span
startswithlenprer   _tab_headerr   traceback_detailvariable_inspector)r"   r$   r
   r'   r(   r   limitedframesfrinfor   r   r%   r   '   sJ   (
0$r   c                 C   s   | j d|d  dd2 | |d j|d pd |d d	kr6| jt|d d
d W d    d S W d    d S 1 sAw   Y  d S )Nr   r   z'))onclicklocationfunctionu   －r   r   symbolr   )buttonstrongbrsmallr4   symbolsget)r"   r<   r   r   r%   r8   G   s   "r8   c                C   s  |d }|d r2| j |d d|d   |d }|r1|r1| D ]\}}| dj||d q#n| j |d p?td	|d |d
 jdd}|sh| d ||d d u rf| d|d d d S d S | j\ | j	@ |d }	|d }
t
||	dD ])\}}| jd|d | ||
krt|||n| W d    n1 sw   Y  q~W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr?   filenamer*   linenourlsr,   )hrefr>   zNative function linesT)keependszSource code not availabler   z but r)   z was raised from herelinenostart)startcodeline)r   data_lineno)r   bitemsar   rB   
splitlinesr   r7   code	enumerater4   marked)r"   r$   r<   r
   r?   rI   namerJ   rK   rO   rH   iliner   r   r%   r9   M   s:    
Pr9   c                 C   s   |sd S | j dd6 |D ]*\}}}| jjj|dddj|dddjdd t|tr2| | qt| | qW d    d S 1 sCw   Y  d S )Nzinspector key-valuer   varz: r)   u    = val)tabletrtdr4   
isinstancestr_format_matrix)r"   r2   ntvr   r   r%   r:   i   s   ,

"r:   c                 C   s   d }}| j @ |D ]4}|d d u rd}q
| j |r!d}| dd |D ]}|d u r,d}q#|r8d}| j|dd q#| | q#q
W d    d S 1 sJw   Y  d S )NFr   Tskippedabover   skippedleft)r^   r_   r`   )r"   rf   skipcolskiprowrowr#   r   r   r%   rc   t   s*   
"rc   c           	      C   sx   t | \}}}|d }t|}zt| jdi ||}W n ty+   t|}Y nw t|jt	|||dd|S )Nr   ztracerite-tooltip)data_symboldata_tooltipr   r   )
split3rE   rF   tooltipsformat	Exceptionreprr   markr4   )	r[   r$   r<   indentrV   trailingr   r@   textr   r   r%   rX      s   
 rX   c                 C   s@   |   |  |  }}}t|}|d|  |||d fS )z1Split s into indent, code and trailing whitespaceN)rstripstriplstripr6   )srT   rR   ccodelenr   r   r%   rn      s   rn   )NN)pkg_resourceshtml5taggerr   tracer   resource_string__name__decoder   detail_showdictrE   ro   r   r&   r   r8   r9   r:   rc   rX   rn   r   r   r   r%   <module>   s*     