a
    lc<!                     @   s   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 dZdS )    N)	FrameTypeTracebackType)UnionIterable)	style_with_executing_nodeOptionsLine	FrameInfoLINE_GAPVariableRepeatedFramesBlankLineRange
BlankLines)assert_c                   @   sD  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dZdd Zd4ddddZd5ddddZddddZd6ee	 dddZ
d7ee	 dddZeeeef  ee	 dddZee	dd d!Zeeeef ee	 d"d#d$Zee	d%d&d'Zee	d(d)d*Zd+d, Zeee	 d%d-d.Zee	d/d0d1Ze	dd2d3ZdS )8	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                C   s   |d u rt  }|rR|jsR|r&t||}|d u r:ddlm} |f d|i|pJi |_|| _|| _tt|dkt	d || _
|	pd| _|
| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _| js| jjtjkrt	dd S )Nr   )Terminal256Formatterstyle   z3executing_node_underline must be a single character z@BlankLines.SINGLE option can only be used when show_linenos=True)r   Zpygments_formatterr   Zpygments.formatters.terminal256r'   r   r   r   len
ValueErrorr   r   r   r   r   r    r"   r!   r#   r$   r%   r   r&   blank_linesr   ZSINGLE)selfr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&    r/   Q/var/www/html/django/DPS/env/lib/python3.9/site-packages/stack_data/formatting.py__init__   sJ    


zFormatter.__init__c                    s    fdd}|t _d S )Nc                    s     | d S N)print_exception)Z_etypeZevalueZ_tbr.   r/   r0   
excepthookN   s    z&Formatter.set_hook.<locals>.excepthook)sysr5   )r.   r5   r/   r4   r0   set_hookM   s    zFormatter.set_hookfilec                C   s   | j | ||d d S Nr8   )print_linesformat_exception)r.   er9   r/   r/   r0   r3   S   s    zFormatter.print_exceptionc                C   s*   |d u rt  j}| j| ||d d S r:   )inspectcurrentframef_backr;   format_stack)r.   frame_or_tbr9   r/   r/   r0   print_stackV   s    
zFormatter.print_stackc                C   s*   |d u rt j}|D ]}t||dd qd S )Nr*   )r9   end)r6   stderrprint)r.   linesr9   liner/   r/   r0   r;   \   s    zFormatter.print_lines)returnc                 c   s   |d u rt  d }| jrj|jd ur@| |jE d H  tjV  n*|jd urj|jsj| |jE d H  tj	V  dV  | 
|jE d H  tt||E d H  d S )Nr)   z#Traceback (most recent call last):
)r6   exc_infor%   	__cause__r<   	traceback_cause_message__context____suppress_context___context_messagerA   __traceback__format_exception_onlytype)r.   r=   r/   r/   r0   r<   b   s    


zFormatter.format_exceptionc                 c   s6   |d u rt  j}| tj|| j| jdE d H  d S )N)r&   )r>   r?   r@   format_stack_datar	   
stack_datar   r&   )r.   rB   r/   r/   r0   rA   s   s    
zFormatter.format_stack)stackrI   c                 c   s6   |D ],}t |tr$| |E d H  q| |V  qd S r2   )
isinstancer	   format_frameformat_repeated_frames)r.   rV   itemr/   r/   r0   rT      s    
zFormatter.format_stack_data)repeated_framesrI   c                 C   s   d |jS )Nz&    [... skipping similar frames: {}]
)formatdescription)r.   r[   r/   r/   r0   rY      s    z Formatter.format_repeated_frames)framerI   c                 c   s   t |tst|| j}| |V  |jD ]L}t |trD| |V  q(t |tr\| |V  q(t	|t
u  | jd V  q(| jrz| |E d H  W n ty   Y n0 d S )N
)rW   r	   r   format_frame_headerrG   r   format_liner   format_blank_lines_linenumbersr   r
   r   r    format_variables	Exception)r.   r^   rH   r/   r/   r0   rX      s    



zFormatter.format_frame)
frame_inforI   c                 C   s"   dj || jr|j n|jjdS )NzC File "{frame_info.filename}", line {frame_info.lineno}, in {name}
)re   name)r\   r!   Z	executingZcode_qualnamecodeco_name)r.   re   r/   r/   r0   r`      s    zFormatter.format_frame_header)rH   rI   c                 C   s   d}| j r0|jr| j }ndt| j  }|d7 }nd}| jrL|| j|j7 }|}||j| j| j	| j
dd 7 }| jr| js|jD ]J}|j|j }|j|j }||kr|d|t|  | j||   d 7 }q|S )Nr*       )r   Zescape_htmlr#   r_   )r   Z
is_currentr+   r"   r   r\   linenorenderr   r$   r#   r   Zexecuting_node_rangesstartZleading_indentrD   r   )r.   rH   resultprefix
line_rangerm   rD   r/   r/   r0   ra      s<    

zFormatter.format_linec                 C   sP   | j rdt| j  d }nd}|j|jkr@|| j|j d S |d| j S )Nri   rj   r_   z   {}
)r   r+   Zbegin_lineno
end_linenor   r\   r   )r.   
blank_linern   r/   r/   r0   rb      s    z(Formatter.format_blank_lines_linenumbersc              	   c   sD   t |jdd dD ],}z| |d V  W q ty<   Y q0 qd S )Nc                 S   s   | j S r2   )rf   )vr/   r/   r0   <lambda>       z,Formatter.format_variables.<locals>.<lambda>)keyr_   )sorted	variablesformat_variablerd   )r.   re   varr/   r/   r0   rc      s
    zFormatter.format_variables)rz   rI   c                 C   s   d |j| |jS )Nz{} = {})r\   rf   format_variable_valuevalue)r.   rz   r/   r/   r0   ry      s    
zFormatter.format_variablec                 C   s   t |S r2   )repr)r.   r|   r/   r/   r0   r{      s    zFormatter.format_variable_value)N)N)N)N)__name__
__module____qualname__r1   r7   r3   rC   r;   r   strr<   rA   r   r	   r   rT   rY   r   r   rX   r`   r   ra   rb   rc   r   ry   r{   r/   r/   r/   r0   r      sJ   @	
&
r   )r>   r6   rL   typesr   r   typingr   r   rU   r   r   r   r	   r
   r   r   r   r   Zstack_data.utilsr   r   r/   r/   r/   r0   <module>   s   ,