
    MhD                         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
mZ d dlmZmZmZ d dlmZmZmZmZmZmZ d dlmZ  ej        e          Z G d d	          ZdS )
    N)Counter)escape)	FrameTypeTracebackType)UnionIterableList)style_with_executing_nodeOptionsLine	FrameInfoVariableRepeatedFrames)some_strc                   D   e Zd ZdddddddddddddddZddee         fd	Zd
edefdZddee         fdZ	de
eeef                  de
e         fdZdedefdZdeeeef         defdZd ZdedefdZdede
e         fdZdedefdZd ZdefdZdedefdZdS )
SerializerNFTmonokaiz
bg:#005080)options	pygmentedshow_executing_nodepygments_formatter_clspygments_formatter_kwargspygments_styleexecuting_node_modifieruse_code_qualnamestrip_leading_indenthtmlchaincollapse_repeated_framesshow_variablesc                   |t                      }|r;|j        s4|rt          ||          }||
rddlm} nddlm}  |dd|i|pi |_        || _        || _        |	| _	        |
| _
        || _        || _        || _        || _        d S )Nr   )HtmlFormatter)Terminal256Formatterstyle )r   pygments_formatterr
   pygments.formatters.htmlr"   pygments.formatters.terminal256r#   r   r   r   r   r   r   r   r    )selfr   r   r   r   r   r   r   r   r   r   r   r   r    s                 V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/stack_data/serializing.py__init__zSerializer.__init__   s   " ?iiG 	W7 	" !:"$;" " &-             *@)? * *$*+1r* *G&
 #!2$8!	
(@%,    returnc                    |t          j                    d         }g }| j        r|j        B|                     |j                  }t
          j                                        |d         d<   nO|j        H|j	        sA|                     |j                  }t
          j
                                        |d         d<   |                    |                     |                     |S )N   tail)sysexc_infor   	__cause__format_exception	traceback_cause_messagestrip__context____suppress_context___context_messageappendformat_traceback_part)r)   eresults      r*   r5   zSerializer.format_exceptionJ   s    9q!A: 	H{&..q{;;%.%=%C%C%E%Er
6""*13I*..q}==%.%?%E%E%G%Gr
6"d0033444r,   r>   c           	          t          |                     |j        pt          j                    d                   t          t          |          j        t          |                    d          S )N   )typemessage )frames	exceptionr1   )dictformat_stack__traceback__r2   r3   rB   __name__r   )r)   r>   s     r*   r=   z Serializer.format_traceback_part[   sh    $$Q_%Iq8IJJ!WW%    
 
 
 	
r,   c           	          |t          j                    j        }t          |                     t          j        || j        | j                                      S )N)r   )	inspectcurrentframef_backlistformat_stack_datar   
stack_datar   r   )r)   frame_or_tbs     r*   rH   zSerializer.format_stacke   sa    !.007K""$L-1-J   
 
 	
r,   stackc              #      K   |D ]t}t          |t                    r:|                     |          s-t          dddi|                     |          V  Qt          dddi|                     |          V  ud S )NrB   framerepeated_framesr%   )
isinstancer   should_include_framerG   format_frameformat_repeated_frames)r)   rS   items      r*   rP   zSerializer.format_stack_datas   s        	X 	XD$	** X0066 CCC4+<+<T+B+BCCCCCCWW 1WT5P5PQU5V5VWWWWWW	X 	Xr,   rV   c                     t          t          |j                                                  d           }t	          d |D                       S )Nc                 :    | d          | d         d         j         fS )Nr/   r   )co_name)r[   s    r*   <lambda>z3Serializer.format_repeated_frames.<locals>.<lambda>   s    tAwhQ
(:; r,   keyc                 H    g | ]\  \  }}}t          |j        ||            S ))namelinenocount)rG   r^   ).0coderd   re   s       r*   
<listcomp>z5Serializer.format_repeated_frames.<locals>.<listcomp>   sL        *NT6E !    r,   )rE   )sortedr   
frame_keysitemsrG   )r)   rV   countss      r*   rZ   z!Serializer.format_repeated_frames~   sm    O.//5577;;
 
 
   .4  	
 	
 	
 		
r,   rU   c           
         t          |t                    st          || j                  }t          | j        r|j                                        n|j        j        |j	        |j
        t          |                     |j                                      }| j        r%t          |                     |                    |d<   |S )N)rc   filenamerd   lines	variables)rW   r   r   rG   r   	executingcode_qualnamerg   r^   rn   rd   rO   format_linesro   r    format_variables)r)   rU   r?   s      r*   rY   zSerializer.format_frame   s    %++ 	3eT\22E )(--///Z'^<t((5566	
 	
 	
  	E"&t'<'<U'C'C"D"DF;r,   c              #      K   |D ]M}t          |t                    r$t          dddi|                     |          V  ;t          d          V  Nd S )NrB   lineline_gap)rB   r%   )rW   r   rG   format_line)r)   ro   rv   s      r*   rs   zSerializer.format_lines   s{       	, 	,D$%% ,AAA$*:*:4*@*@AAAAAA
+++++++		, 	,r,   rv   c           	          t          |j        |j        |                    | j        | j        | j                            S )N)r   escape_htmlr   )
is_currentrd   text)rG   r{   rd   renderr   r   r   )r)   rv   s     r*   rx   zSerializer.format_line   sI    ;. I%)%>   
 
 
 	
r,   
frame_infoc              #      K   	 t          |j        d           D ]}|                     |          V  d S # t          $ r t                              d           Y d S w xY w)Nc                     | j         S N)rc   )vs    r*   r_   z-Serializer.format_variables.<locals>.<lambda>   s    !& r,   r`   z Error in getting frame variables)ri   rp   format_variable	ExceptionlogrF   )r)   r~   vars      r*   rt   zSerializer.format_variables   s      	>j28H8HIII 0 0**3//////0 0 	> 	> 	>MM<======	>s   17 $AAr   c                     t          |                     |j                  |                     |                     |j                                      S )N)rc   value)rG   format_variable_partrc   format_variable_valuer   )r)   r   s     r*   r   zSerializer.format_variable   sM    **3844++D,F,Fsy,Q,QRR
 
 
 	
r,   c                 2    | j         rt          |          S |S r   )r   rz   )r)   r|   s     r*   r   zSerializer.format_variable_part   s    9 	t$$$Kr,   c                      t          |          S r   )repr)r)   r   s     r*   r   z Serializer.format_variable_value   s    E{{r,   c                     dS )NTr%   )r)   r~   s     r*   rX   zSerializer.should_include_frame   s    tr,   r   )rJ   
__module____qualname__r+   r	   rG   r5   BaseExceptionr=   rH   r   r   r   r   rP   rZ   r   r   rY   rs   r   rx   rt   r   r   r   strr   boolrX   r%   r,   r*   r   r      s         #"&  ,!!%0- 0- 0- 0- 0-d $t*    "
} 
 
 
 
 

 
T
 
 
 
 
	XeI~$=>?	X	$	X 	X 	X 	X
n 
 
 
 
 
 %	9m(K"L QU    $, , ,	
 	
 	
 	
 	
 	
>9 >$ > > > >
8 
 
 
 
 
  c    y T      r,   r   )rL   loggingr2   r6   collectionsr   r   r   rz   typesr   r   typingr   r   r	   rQ   r
   r   r   r   r   r   stack_data.utilsr   	getLoggerrJ   r   r   r%   r,   r*   <module>r      s8     



           & & & & & & * * * * * * * * ( ( ( ( ( ( ( ( ( (                & % % % % %g!!r r r r r r r r r rr,   