
    f<!                         d dl Z d dlZd dlZd dlmZmZ d dlmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZ d dlmZ  G d d      Zy)    N)	FrameTypeTracebackType)UnionIterable)	style_with_executing_nodeOptionsLine	FrameInfoLINE_GAPVariableRepeatedFramesBlankLineRange
BlankLines)assert_c                   B   e Zd Zddddddddddd	d
dddddddddZd Zd$dddZd$dddZdddZd$de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e	   fdZdede	fdZdede	fdZd Zdedee	   fd Zd!ede	fd"Zde	fd#Zy)%	FormatterNFTmonokaiz
bg:#005080^z-->z(...):z{:4} | )options	pygmentedshow_executing_nodepygments_formatter_clspygments_formatter_kwargspygments_styleexecuting_node_modifierexecuting_node_underlinecurrent_line_indicatorline_gap_stringline_number_gap_stringline_number_format_stringshow_variablesuse_code_qualnameshow_linenosstrip_leading_indenthtmlchaincollapse_repeated_framesc                $   |
t               }|r5|j                  s)|rt        ||      }|ddlm}  |dd|i|xs i |_        || _        || _        t        t        |      dk(  t        d             || _
        |	xs d| _        |
| _        || _        || _        || _        || _        || _        || _        || _        || _        || _        || _        | j                   s3| j*                  j.                  t0        j2                  k(  rt        d      y y )	Nr   )Terminal256Formatterstyle   z3executing_node_underline must be a single character z@BlankLines.SINGLE option can only be used when show_linenos=True )r   pygments_formatterr   pygments.formatters.terminal256r*   r   r   r   len
ValueErrorr   r   r   r    r!   r"   r$   r#   r%   r&   r'   r   r(   blank_linesr   SINGLE)selfr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   s                       P/var/www/cvtools/html/venv/lib/python3.12/site-packages/stack_data/formatting.py__init__zFormatter.__init__   s6   , ?iGW77"!:"$;" &-. *@ *$*+1r*G&
 ##6 ()Q.LM	
 )A%&<&B#.&<#)B&,(!2$8!	
(@%  T\\%=%=ARAR%RR  &S     c                 &      fd}|t         _        y )Nc                 (    j                  |       y N)print_exception)_etypeevalue_tbr5   s      r6   
excepthookz&Formatter.set_hook.<locals>.excepthookN   s      (r8   )sysr@   )r5   r@   s   ` r6   set_hookzFormatter.set_hookM   s    	) $r8   filec                H    | j                  | j                  |      |       y NrC   )print_linesformat_exception)r5   erD   s      r6   r<   zFormatter.print_exceptionS   s     ..q1=r8   c                    |t        j                         j                  }| j                  | j	                  |      |       y rF   )inspectcurrentframef_backrG   format_stack)r5   frame_or_tbrD   s      r6   print_stackzFormatter.print_stackV   s:    !..077K**;7dCr8   c                R    |t         j                  }|D ]  }t        ||d        y )Nr-   )rD   end)rA   stderrprint)r5   linesrD   lines       r6   rG   zFormatter.print_lines\   s+    <::D 	+D$Tr*	+r8   returnc              #      K   |t        j                         d   }| j                  r|j                  6| j	                  |j                        E d {    t
        j                   nM|j                  A|j                  s5| j	                  |j                        E d {    t
        j                   d | j                  |j                        E d {    t        j                  t        |      |      E d {    y 7 7 g7 07 w)Nr,   z#Traceback (most recent call last):
)rA   exc_infor'   	__cause__rH   	traceback_cause_message__context____suppress_context___context_messagerN   __traceback__format_exception_onlytype)r5   rI   s     r6   rH   zFormatter.format_exceptionb   s     9q!A::{{&00===...--+0000???00044$$Q__5552247A>>> > @ 	6>sI   ADDAD D!8DD
&D DDD
DDc              #      K   |t        j                         j                  }| j                  t	        j
                  || j                  | j                              E d {    y 7 w)N)r(   )rK   rL   rM   format_stack_datar
   
stack_datar   r(   )r5   rO   s     r6   rN   zFormatter.format_stacks   sY     !..077K))  )-)F)F
 	
 	
s   AA)!A'"A)stackc              #      K   |D ]?  }t        |t              r| j                  |      E d {    -| j                  |       A y 7 wr;   )
isinstancer
   format_frameformat_repeated_frames)r5   rf   items      r6   rd   zFormatter.format_stack_data   sI       	8D$	*,,T22211$77		82s   *A
AA
repeated_framesc                 8    dj                  |j                        S )Nz&    [... skipping similar frames: {}]
)formatdescription)r5   rl   s     r6   rj   z Formatter.format_repeated_frames   s    8??''
 	
r8   framec              #     K   t        |t              st        || j                        }| j                  |       |j                  D ]l  }t        |t
              r| j                  |       't        |t              r| j                  |       Kt        |t        u        | j                  dz    n | j                  r	 | j                  |      E d {    y y 7 # t        $ r Y y w xY ww)N
)rh   r
   r   format_frame_headerrU   r	   format_liner   format_blank_lines_linenumbersr   r   r   r"   format_variables	Exception)r5   rp   rV   s      r6   ri   zFormatter.format_frame   s     %+eT\\2E&&u--KK 	2D$%&&t,,D.199$??()**T11	2 00777 7 s<   CC0C! CC! C0C! !	C-*C0,C--C0
frame_infoc                     dj                  || j                  r|j                  j                               S |j                  j
                        S )NzC File "{frame_info.filename}", line {frame_info.lineno}, in {name}
)rx   name)rn   r#   	executingcode_qualnamecodeco_name)r5   rx   s     r6   rs   zFormatter.format_frame_header   s\    U\\! )) $$224 ] 
 	

 '' ] 
 	
r8   rV   c                    d}| j                   r7|j                  r| j                   }ndt        | j                         z  }|dz  }nd}| j                  r(|| j                  j                  |j                        z  }|}||j                  | j                  | j                  | j                        dz   z  }| j                  r| j                  ss|j                  D ]d  }|j                  |j                  z
  }|j                  |j                  z
  }||kD  s;|d|t        |      z   z  | j                   ||z
  z  z   dz   z  }f |S )Nr-       )r   escape_htmlr%   rr   )r   
is_currentr1   r$   r!   rn   linenorenderr   r&   r%   r   executing_node_rangesstartleading_indentrR   r   )r5   rV   resultprefix
line_ranger   rR   s          r6   rt   zFormatter.format_line   sH   &&44s4#>#>??cMFFd44;;DKKHHF$++nn		!%!:!:  
 	 	 ##DNN"88 
"((4+>+>> nnt':':: ;53v;#67";;sU{KL"#F r8   c                    | j                   rdt        | j                         z  dz   }nd}|j                  |j                  k(  r+|| j                  j                  |j                        z   dz   S |dj                  | j                        z   S )Nr   r   rr   z   {}
)r   r1   begin_lineno
end_linenor!   rn   r    )r5   
blank_liner   s      r6   ru   z(Formatter.format_blank_lines_linenumbers   s    &&3t::;;cAFF""j&;&;;D::AA*BYBYZZ]aaa	(()D)DEEEr8   c              #      K   t        |j                  d       D ]  }	 | j                  |      dz     y # t        $ r Y (w xY ww)Nc                     | j                   S r;   )rz   )vs    r6   <lambda>z,Formatter.format_variables.<locals>.<lambda>   s
    aff r8   )keyrr   )sorted	variablesformat_variablerw   )r5   rx   vars      r6   rv   zFormatter.format_variables   sQ     *..4DE 	C**3/$66	  s%   A8A	AAAAr   c                 l    dj                  |j                  | j                  |j                              S )Nz{} = {})rn   rz   format_variable_valuevalue)r5   r   s     r6   r   zFormatter.format_variable   s.    HH&&syy1
 	
r8   c                     t        |      S r;   )repr)r5   r   s     r6   r   zFormatter.format_variable_value   s    E{r8   r;   )__name__
__module____qualname__r7   rB   r<   rP   rG   r   strrH   rN   r   r
   r   rd   rj   r   r   ri   rs   r	   rt   ru   rv   r   r   r   r.   r8   r6   r   r      sP     $#'&*$$0%(#(##&&/ "!%%))>@$>d >DD D *. +?(3- ?"

 

8!%	>(A"BC8	#8
n 
 

%	9m(K"L QYZ]Q^ *
i 
C 
# # #LF9 # 
8 
 
c r8   r   )rK   rA   r[   typesr   r   typingr   r   re   r   r   r	   r
   r   r   r   r   r   stack_data.utilsr   r   r.   r8   r6   <module>r      s5     
  * "M M M $^ ^r8   