o
    d@                     @   s   U 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 ejr8d dlZed	Zed
 ed< edZeed< G dd
 d
ZG dd dZejZeje_G dd dZG dd de jZG dd dZdS )    N)
ContextVar)CodeType)escape   )
debug_repr)dump)helperzwerkzeug.debug.console.streamHTMLStringO_streamzwerkzeug.debug.console.ipy_ipyc                   @   s   e Zd ZdZdddZdefddZddd	Zdd
dZdde	de	ddfddZ
defddZdefddZdeddfddZdeddfddZdeje ddfddZdS )r	   z-A StringO version that HTML escapes on write.returnNc                 C   s
   g | _ d S N)_bufferself r   [/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/werkzeug/debug/console.py__init__      
zHTMLStringO.__init__c                 C   s   dS )NFr   r   r   r   r   isatty      zHTMLStringO.isattyc                 C      d S r   r   r   r   r   r   close   r   zHTMLStringO.closec                 C   r   r   r   r   r   r   r   flush    r   zHTMLStringO.flushr   nmodec                 C   r   r   r   )r   r   r   r   r   r   seek#   r   zHTMLStringO.seekc                 C   s(   t | jdkr	dS | jd }| jd= |S )Nr    )lenr   )r   retr   r   r   readline&   s
   
zHTMLStringO.readlinec                 C   s   d | j}| jd d = |S Nr   )joinr   )r   valr   r   r   reset-   s   zHTMLStringO.resetxc                 C   s&   t |tr|dd}| j| d S )Nzutf-8replace)
isinstancebytesdecoder   appendr   r%   r   r   r   _write2   s   
zHTMLStringO._writec                 C   s   |  t| d S r   )r,   r   r+   r   r   r   write7   s   zHTMLStringO.writec                 C   s   |  td| d S r!   )r,   r   r"   r+   r   r   r   
writelines:   s   zHTMLStringO.writelinesr   N)r   )__name__
__module____qualname____doc__r   boolr   r   r   intr   strr    r$   r,   r-   tIterabler.   r   r   r   r   r	      s    


c                   @   s   e Zd ZdZedddZedefddZededdfd	d
Z	dede
jddfddZde
je fddZdede
jfddZdefddZdS )ThreadedStreamz@Thread-local wrapper for sys.stdout for the interactive console.r   Nc                   C   s.   t tjtsttjt t_tt	  d S r   )
r'   sysstdoutr9   r7   castTextIOr
   setr	   r   r   r   r   pushA   s   zThreadedStream.pushc                  C   s(   z	t  } W |  S  ty   Y dS w r!   )r
   getLookupErrorr$   )streamr   r   r   fetchH   s   
zThreadedStream.fetchobjc                 C   sT   zt  }W n ty   t|  Y S w | d ur(| t jd< |t|  d S d S )N_)r
   r@   rA   _displayhookr   localsr,   r   )rD   rB   r   r   r   displayhookQ   s   zThreadedStream.displayhooknamevaluec                 C   s   t d| )Nzread only attribute )AttributeError)r   rI   rJ   r   r   r   __setattr__^   s   zThreadedStream.__setattr__c                 C   
   t tjS r   )dirr:   
__stdout__r   r   r   r   __dir__a   r   zThreadedStream.__dir__c                 C   s0   zt  }W n ty   tj}Y nw t||S r   )r
   r@   rA   r:   rO   getattr)r   rI   rB   r   r   r   __getattribute__d   s   

zThreadedStream.__getattribute__c                 C   rM   r   )reprr:   rO   r   r   r   r   __repr__l   r   zThreadedStream.__repr__r/   )r0   r1   r2   r3   staticmethodr?   r6   rC   objectrH   r7   AnyrL   ListrP   rR   rT   r   r   r   r   r9   >   s    r9   c                   @   sD   e Zd ZdddZdededdfddZdedeje fd	d
Z	dS )_ConsoleLoaderr   Nc                 C   s
   i | _ d S r   )_storager   r   r   r   r   v   r   z_ConsoleLoader.__init__codesourcec                 C   s6   || j t|< |jD ]}t|tr|| j t|< q
d S r   )rZ   id	co_constsr'   r   )r   r[   r\   varr   r   r   registery   s   

z_ConsoleLoader.registerc                 C   s&   z| j t| W S  ty   Y d S w r   )rZ   r]   KeyErrorr   r[   r   r   r   get_source_by_code   s
   z!_ConsoleLoader.get_source_by_coder/   )
r0   r1   r2   r   r   r6   r`   r7   Optionalrc   r   r   r   r   rY   u   s    
rY   c                       s   e Zd ZU ejeejf ed< dejeejf dejeejf ddf fddZdedejdef fd	d
Z	de
ddfddZdddZddeje ddfddZdeddfddZ  ZS )_InteractiveConsolerG   globalsr   Nc              	      sp   t  _i ||ttjd}t | j dtdtdtdtj	t
 f fdd}|_d_g _d S )	N)r   help
__loader__r\   filenamesymbolr   c                    s&    | ||}|d urj ||  |S r   )loaderr`   )r\   ri   rj   r[   original_compiler   r   r   compile   s   z-_InteractiveConsole.__init__.<locals>.compileF)rY   rk   r   r   superr   rn   r6   r7   rd   r   morebuffer)r   rf   rG   rn   	__class__rl   r   r      s    &
z_InteractiveConsole.__init__r\   kwargsc                    s   |   d}t  | jrdnd}z*d| j|g }t |ddr.d| _| j| n	d| _| jd d = W t	 }nt	 }w | t
| | S )	N
z... z>>> r   z
<debugger>singleTF)rstripr9   r?   rp   r"   rq   ro   	runsourcer*   rC   r   )r   r\   rt   promptsource_to_evaloutputrr   r   r   rx      s   z_InteractiveConsole.runsourcer[   c                 C   s0   z	t || j W d S  ty   |   Y d S w r   )execrG   	Exceptionshowtracebackrb   r   r   r   runcode   s
   z_InteractiveConsole.runcodec                 C   s@   ddl m} ttt d }||dd}tj|	  d S )Nr   DebugTracebackskip
tbtoolsr   r7   r<   BaseExceptionr:   exc_infor;   r,   render_traceback_html)r   r   excter   r   r   r~         z!_InteractiveConsole.showtracebackri   c                 C   s@   ddl m} ttt d }||dd}tj|	  d S )Nr   r      r   r   )r   ri   r   r   r   r   r   r   showsyntaxerror   r   z#_InteractiveConsole.showsyntaxerrordatac                 C   s   t j| d S r   )r:   r;   r-   )r   r   r   r   r   r-      s   z_InteractiveConsole.writer/   r   )r0   r1   r2   r7   Dictr6   rW   __annotations__r   rx   r   r   r~   rd   r   r-   __classcell__r   r   rr   r   re      s   
 2
re   c                   @   sb   e Zd ZdZ		ddejejeejf  dejejeejf  ddfddZ	dedefd	d
Z
dS )ConsolezAn interactive console.Nrf   rG   r   c                 C   s(   |d u ri }|d u ri }t ||| _d S r   )re   r   )r   rf   rG   r   r   r   r      s
   zConsole.__init__r[   c                 C   s0   t | j  tj}z
| j |W |t_S |t_w r   )r   r>   r:   r;   rx   )r   r[   old_sys_stdoutr   r   r   eval   s
   zConsole.eval)NN)r0   r1   r2   r3   r7   rd   r   r6   rW   r   r   r   r   r   r   r      s    
r   )r[   r:   typingr7   contextvarsr   typesr   
markupsafer   rS   r   r   r   TYPE_CHECKINGcodeopr
   r   r   r	   r9   rH   rF   rY   InteractiveInterpreterre   r   r   r   r   r   <module>   s(   
 *3C