o
    MK&hm                     @   s   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ ddlmZ ddlmZ dZed	Zdd
efddZd ddd
efddZdd
efddZdS )    N)Path)token_urlsafe)dedent)quote   )extract_variables)loggerz)/usr/.*|.*(site-packages|dist-packages).*returnc                    s\   g  | p	t  d } | r$ |  t| ddrnt| dp!t| d} | s fdd D S )z)Extract information on current exception.r   __suppress_context__F	__cause____context__c                    s,   g | ]}t |fi | d  u rni qS )r   )extract_exception).0echainkwargs B/var/www/html/venv/lib/python3.10/site-packages/tracerite/trace.py
<listcomp>   s     z!extract_chain.<locals>.<listcomp>)sysexc_infoappendgetattr)excr   r   r   r   extract_chain   s   
r   )skip_outmost
skip_untilc          
      C   s6  | j }zt|}W n ty   td g }Y nw |r/t|D ]\}}||jv r.|} nq!||d  }t| ddp>t	| }|
ddd }t|dkrlt|dkrc|d d	  d
|dd   }n	|d d  d}zt| t }t||d}	W n ty   td d }	Y nw tt| j||t| |	pg dS )NzBug in inspect?message 
r   r   d   i  (   u    ··· i<   u    ···)suppress_innerzError extracting traceback)typer   summaryreprframes)__traceback__inspectgetinnerframes
IndexErrorr   	exception	enumeratefilenamer   strsplitlen
isinstance	Exceptionextract_framesdictr%   __name__r'   )
r   r   r   tbiframer   r&   suppressr(   r   r   r   r   $   sD   

 
r   Fc                 C   s  | sg S g }t dd t| D | d j}| D ]Y\}}}}}}	|jddr(q|jddr0q|| d d u r?|r<dnd}
n	||u rFd	}
nd
}
g }z5t|\}}|dkrXd}|td|| d td|| d  }|td|| d 7 }t	d
|}W n ty   d}|
d
krY qY nw i }d }ztjj| }d| d}d }W n ttfy   Y nw |rt| rt| }dt|  d| |d< t }||jv r||}td urdt|  |d< | }|sd}t|dkr|ddt|d d }||d  }|dkrd }n-zt dd |j D }|j d| }W n
 ty5   Y nw d
|ddd  }|t dt!d |
|||rW|d " nd |||||t#|j|d  |rq||u rq |S q|S )!Nc                 s   s&    | ]}|j rt|js|V  qd S N)code_contextlibdir	fullmatchr/   )r   fr   r   r   	<genexpr>R   s   $ z!extract_frames.<locals>.<genexpr>__tracebackhide__Fr   stoperrorwarningcallr         r   zIn []zvscode://file/:zVS Codez/edit/Jupyterr"   /
      z<module>c                 s   s6    | ]\}}|d v r|dur|dkr|j n|V  qdS ))selfclsNrP   )	__class__)r   nvr   r   r   rA      s    .ztb-   )id	relevancer/   locationcodelinelinenolinenostartlinesfunctionurls	variables)$nextreversedr:   	f_globalsgetf_localsr*   getsourcelinesmaxr   joinOSErroripythoncompile_filename_mapAttributeErrorKeyErrorr   is_fileresolver   as_posixcwdparentsrelative_tor2   rfinditemsr7   StopIterationr1   r   r6   r   stripr   )r8   r$   r(   bug_in_framer:   r/   r\   r_   r[   _rY   r^   startr`   rZ   
ipython_infnrs   r1   rQ   r   r   r   r5   J   s   (



 r5   r<   )F)r*   osrer   pathlibr   secretsr   textwrapr   urllib.parser   	inspectorr   loggingr   rk   rl   r>   listr   r6   r   r5   r   r   r   r   <module>   s    
&