
    ^h<!                         S SK r S SKrS SKrS SKJrJr  S SKJrJr  S SK	J
r
JrJrJrJrJrJrJrJr  S SKJr   " S S5      rg)    N)	FrameTypeTracebackType)UnionIterable)	style_with_executing_nodeOptionsLine	FrameInfoLINE_GAPVariableRepeatedFramesBlankLineRange
BlankLines)assert_c                   n   \ rS rSrSSSSSSSSSS	S
SSSSSSSSS.S jrS rS&SS.S jjrS&SS.S jjrSS.S jrS&S\	\
   4S jjrS&S\	\
   4S jjrS\	\\\4      S\	\
   4S jrS\S\
4S jrS\\\\4   S\	\
   4S jrS\S\
4S jrS\S\
4S jrS  rS\S\	\
   4S! jrS"\S\
4S# jrS\
4S$ jrS%rg)'	Formatter   NFT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                P   Uc
  [        5       nU(       aD  UR                  (       d3  U(       a  [        Xg5      nUc  SSKJn  U" SSU0U=(       d    0 D6Ul        X l        X0l        [        [        U5      S:H  [        S5      5        Xl
        U	=(       d    SU l        Xl        Xl        Xl        Xl        Xl        Xl        UU l        UU l        UU l        Xl        UU l        U R                   (       d4  U R*                  R.                  [0        R2                  :X  a  [        S5      eg g )	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                       O/home/james-whalen/.local/lib/python3.13/site-packages/stack_data/formatting.py__init__Formatter.__init__   s   , ?iGW77"!:"" &-. *@ *$*+1r*G&
 ##6 ()Q.LM	
 )A%&<&B#.&<#)B&,(!2$8!	
(@%  T\\%=%=ARAR%RR  &S     c                 (   ^  U 4S jnU[         l        g )Nc                 (   > TR                  U5        g N)print_exception)_etypeevalue_tbr6   s      r7   
excepthook&Formatter.set_hook.<locals>.excepthookN   s      (r:   )sysrB   )r6   rB   s   ` r7   set_hookFormatter.set_hookM   s    	) $r:   filec                B    U R                  U R                  U5      US9  g NrG   )print_linesformat_exception)r6   erH   s      r7   r>   Formatter.print_exceptionS   s     ..q1=r:   c                    Uc  [         R                  " 5       R                  nU R                  U R	                  U5      US9  g rJ   )inspectcurrentframef_backrK   format_stack)r6   frame_or_tbrH   s      r7   print_stackFormatter.print_stackV   s:    !..077K**;7dCr:   c                P    Uc  [         R                  nU H  n[        X2SS9  M     g )Nr.   )rH   end)rD   stderrprint)r6   linesrH   lines       r7   rK   Formatter.print_lines\   s$    <::DD$r* r:   returnc              #   >  #    Uc  [         R                  " 5       S   nU R                  (       a  UR                  b6  U R	                  UR                  5       S h  vN   [
        R                  v   OSUR                  bF  UR                  (       d5  U R	                  UR                  5       S h  vN   [
        R                  v   Sv   U R                  UR                  5       S h  vN   [
        R                  " [        U5      U5       S h  vN   g  N Nh N1 N7f)Nr-   z#Traceback (most recent call last):
)rD   exc_infor(   	__cause__rL   	traceback_cause_message__context____suppress_context___context_messagerS   __traceback__format_exception_onlytype)r6   rM   s     r7   rL   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              #      #    Uc  [         R                  " 5       R                  nU R                  [        R
                  " UU R                  U R                  S95       S h  vN   g  N7f)N)r)   )rP   rQ   rR   format_stack_datar
   
stack_datar   r)   )r6   rT   s     r7   rS   Formatter.format_stacks   sX     !..077K))  )-)F)F
 	
 	
s   AA)!A'"A)stackc              #      #    U HF  n[        U[        5      (       a  U R                  U5       S h  vN   M3  U R                  U5      v   MH     g  N7fr=   )
isinstancer
   format_frameformat_repeated_frames)r6   ro   items      r7   rl   Formatter.format_stack_data   sF      D$	**,,T22211$77	 2s   /AAArepeated_framesc                 8    SR                  UR                  5      $ )Nz&    [... skipping similar frames: {}]
)formatdescription)r6   rv   s     r7   rs    Formatter.format_repeated_frames   s    8??''
 	
r:   framec              #     #    [        U[        5      (       d  [        XR                  5      nU R                  U5      v   UR                   Hy  n[        U[
        5      (       a  U R                  U5      v   M-  [        U[        5      (       a  U R                  U5      v   MW  [        U[        L 5        U R                  S-   v   M{     U R                  (       a   U R                  U5       S h  vN   g g  N! [         a     g f = f7f)N
)rq   r
   r   format_frame_headerr[   r	   format_liner   format_blank_lines_linenumbersr   r   r    r#   format_variables	Exception)r6   r{   r\   s      r7   rr   Formatter.format_frame   s     %++e\\2E&&u--KKD$%%&&t,,D.1199$??()**T11   00777 7 s<   CDC8 /C60C8 4D6C8 8
DDDD
frame_infoc                     SR                  UU R                  (       a  UR                  R                  5       S9$ UR                  R
                  S9$ )NzC File "{frame_info.filename}", line {frame_info.lineno}, in {name}
)r   name)rx   r$   	executingcode_qualnamecodeco_name)r6   r   s     r7   r~   Formatter.format_frame_header   s\    U\\! )) $$224 ] 
 	

 '' ] 
 	
r:   r\   c                    SnU R                   (       a<  UR                  (       a  U R                   nOS[        U R                   5      -  nUS-  nOSnU R                  (       a'  X R                  R                  UR                  5      -  nUnX!R                  U R                  U R                  U R                  S9S-   -  nU R                  (       a  U R                  (       du  UR                   He  nUR                  UR                  -
  nUR                  UR                  -
  nXe:  d  M<  USU[        U5      -   -  U R                   Xe-
  -  -   S-   -  nMg     U$ )Nr.       )r   escape_htmlr&   r}   )r   
is_currentr2   r%   r"   rx   linenorenderr   r'   r&   r   executing_node_rangesstartleading_indentrX   r   )r6   r\   resultprefix
line_ranger   rX   s          r7   r   Formatter.format_line   s;   &&44s4#>#>??cMFF44;;DKKHHF++nn		!%!:!:  
 	 	 ##DNN"88
"((4+>+>> nnt':':: ;53v;#67";;s{KL"#F 9 r:   c                 $   U R                   (       a  S[        U R                   5      -  S-   nOSnUR                  UR                  :X  a*  X R                  R                  UR                  5      -   S-   $ USR                  U R                  5      -   $ )Nr   r   r}   z   {}
)r   r2   begin_lineno
end_linenor"   rx   r!   )r6   
blank_liner   s      r7   r   (Formatter.format_blank_lines_linenumbers   s    &&3t::;;cAFF""j&;&;;::AA*BYBYZZ]aaa	(()D)DEEEr:   c              #      #    [        UR                  S S9 H  n U R                  U5      S-   v   M     g ! [         a     M,  f = f7f)Nc                     U R                   $ r=   )r   )vs    r7   <lambda>,Formatter.format_variables.<locals>.<lambda>   s    affr:   )keyr}   )sorted	variablesformat_variabler   )r6   r   vars      r7   r   Formatter.format_variables   sL     *..4DEC**3/$66 F  s%   A7A
AAAAr   c                 l    SR                  UR                  U R                  UR                  5      5      $ )Nz{} = {})rx   r   format_variable_valuevalue)r6   r   s     r7   r   Formatter.format_variable   s.    HH&&syy1
 	
r:   c                     [        U5      $ r=   )repr)r6   r   s     r7   r   Formatter.format_variable_value   s    E{r:   )r(   r)   r   r   r'   r    r"   r!   r   r   r   r%   r#   r&   r$   r=   )__name__
__module____qualname____firstlineno__r8   rE   r>   rU   rK   r   strrL   rS   r   r
   r   rl   rs   r   r   rr   r~   r	   r   r   r   r   r   r   __static_attributes__r/   r:   r7   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 r:   r   )rP   rD   rb   typesr   r   typingr   r   rm   r   r   r	   r
   r   r   r   r   r   stack_data.utilsr   r   r/   r:   r7   <module>r      s5     
  * "M M M $^ ^r:   