
    'g                    Z   U d dl m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 ddlmZ ddlmZ dd	lmZ  ed
      Zded<    ed      Zded<    G d d      Z G d d      Zej*                  Zej*                  e_         G d d      Z G d dej0                        Z G d d      Zy)    )annotationsN)
ContextVar)CodeType)escape   )
debug_repr)dump)helperzwerkzeug.debug.console.streamzContextVar[HTMLStringO]_streamzwerkzeug.debug.console.ipyzContextVar[_InteractiveConsole]_ipyc                  b    e Zd ZdZddZddZddZddZdddZddZ	ddZ
dd	Zdd
ZddZy)HTMLStringOz-A StringO version that HTML escapes on write.c                    g | _         y N)_bufferselfs    N/var/www/html/knws/venv/lib/python3.12/site-packages/werkzeug/debug/console.py__init__zHTMLStringO.__init__   s	    "$    c                     y)NF r   s    r   isattyzHTMLStringO.isatty   s    r   c                     y r   r   r   s    r   closezHTMLStringO.close       r   c                     y r   r   r   s    r   flushzHTMLStringO.flush   r   r   c                     y r   r   )r   nmodes      r   seekzHTMLStringO.seek"   r   r   c                p    t        | j                        dk(  ry| j                  d   }| j                  d= |S )Nr    )lenr   )r   rets     r   readlinezHTMLStringO.readline%   s3    t||!ll1oLLO
r   c                Z    dj                  | j                        }| j                  d d = |S Nr$   )joinr   )r   vals     r   resetzHTMLStringO.reset,   s$    ggdll#LLO
r   c                :    | j                   j                  |       y r   )r   appendr   xs     r   _writezHTMLStringO._write1   s    Ar   c                8    | j                  t        |             y r   )r1   r   r/   s     r   writezHTMLStringO.write4   s    F1Ir   c                V    | j                  t        dj                  |                   y r)   )r1   r   r*   r/   s     r   
writelineszHTMLStringO.writelines7   s    F2771:&'r   NreturnNone)r7   bool)r   )r    intr!   r:   r7   r8   r7   str)r0   r<   r7   r8   )r0   zt.Iterable[str]r7   r8   )__name__
__module____qualname____doc__r   r   r   r   r"   r'   r,   r1   r3   r5   r   r   r   r   r      s7    7%
(r   r   c                  f    e Zd ZdZed
d       Zedd       Zedd       ZddZddZ	ddZ
ddZy	)ThreadedStreamz@Thread-local wrapper for sys.stdout for the interactive console.c                     t        t        j                  t              s5t	        j
                  t        j                  t                     t        _        t        j                  t                      y r   )

isinstancesysstdoutrB   tcastTextIOr   setr   r   r   r   pushzThreadedStream.push>   s7    #**n5.*:;CJKM"r   c                 j    	 t         j                         } | j                         S # t        $ r Y yw xY wr)   )r   getLookupErrorr,   )streams    r   fetchzThreadedStream.fetchE   s4    	[[]F ||~  		s   & 	22c                    	 t         j                         }| <| t        j                         j
                  d<   |j                  t        |              y y # t        $ r t        |       cY S w xY w)N_)r   rM   rN   _displayhookr   localsr1   r   )objrO   s     r   displayhookzThreadedStream.displayhookN   s`    	%[[]F ?%(DHHJc"MM*S/*   	%$$	%s   A A,+A,c                    t        d|       )Nzread only attribute )AttributeError)r   namevalues      r   __setattr__zThreadedStream.__setattr__[   s    3D6:;;r   c                4    t        t        j                        S r   )dirrE   
__stdout__r   s    r   __dir__zThreadedStream.__dir__^   s    3>>""r   c                    	 t         j                         }t        ||      S # t        $ r t        j                  }Y 'w xY wr   )r   rM   rN   rE   r^   getattr)r   rY   rO   s      r   __getattribute__zThreadedStream.__getattribute__a   s;    	$[[]F vt$$  	$^^F	$s   " >>c                4    t        t        j                        S r   )reprrE   r^   r   s    r   __repr__zThreadedStream.__repr__i   s    CNN##r   Nr6   r;   )rU   objectr7   r8   )rY   r<   rZ   t.Anyr7   r8   )r7   z	list[str])rY   r<   r7   rg   )r=   r>   r?   r@   staticmethodrK   rP   rV   r[   r_   rb   re   r   r   r   rB   rB   ;   sS    J# #   
+ 
+<#%$r   rB   c                  $    e Zd ZddZddZddZy)_ConsoleLoaderc                    i | _         y r   )_storager   s    r   r   z_ConsoleLoader.__init__s   s	    (*r   c                    || j                   t        |      <   |j                  D ]+  }t        |t              s|| j                   t        |      <   - y r   )rl   id	co_constsrD   r   )r   codesourcevars       r   registerz_ConsoleLoader.registerv   sC    "(bh>> 	0C#x()/bg&	0r   c                R    	 | j                   t        |         S # t        $ r Y y w xY wr   )rl   rn   KeyErrorr   rp   s     r   get_source_by_codez!_ConsoleLoader.get_source_by_code}   s,    	==D** 		s    	&&Nr6   )rp   r   rq   r<   r7   r8   )rp   r   r7   
str | None)r=   r>   r?   r   rs   rw   r   r   r   rj   rj   r   s    +0r   rj   c                  Z     e Zd ZU ded<   d	 fdZd
 fdZddZddZdddZddZ	 xZ
S )_InteractiveConsoledict[str, t.Any]rT   c                     t                _        i ||t        t         j                  d}t           |        j                  d fd}| _        d _        g  _        y )N)r	   help
__loader__c                X     | ||      }|j                   j                  ||        |S r   )loaderrs   )rq   filenamesymbolrp   original_compiler   s       r   compilez-_InteractiveConsole.__init__.<locals>.compile   s0    #FHf=D$$T62Kr   F)rq   r<   r   r<   r   r<   r7   zCodeType | None)	rj   r   r	   r
   superr   r   morebuffer)r   globalsrT   r   r   	__class__s   `   @r   r   z_InteractiveConsole.__init__   sm    $&


 ++
 	 <<	 	!#r   c                   |j                          d}t        j                          | j                  rdnd}	 dj	                  | j
                  |gz         }t        |   |dd      r#d| _        | j
                  j                  |       nd| _        | j
                  d d = t        j                         }| t        |       | S # t        j                         }w xY w)	N
z... z>>> r$   z
<debugger>singleTF)rstriprB   rK   r   r*   r   r   	runsourcer.   rP   r   )r   rq   kwargspromptsource_to_evaloutputr   s         r   r   z_InteractiveConsole.runsource   s    MMO$B'99&		,WWT[[F8%;<Nw xH 	""6*!	KKN#))+F&.)&22 $))+Fs   A)C Cc                p    	 t        || j                         y # t        $ r | j                          Y y w xY wr   )execrT   	Exceptionshowtracebackrv   s     r   runcodez_InteractiveConsole.runcode   s0    	!t{{# 	! 	!s    55c                    ddl m} t        j                  t        t        j                         d         } ||d      }t
        j                  j                  |j                                y )Nr   DebugTracebackskip
tbtoolsr   rG   rH   BaseExceptionrE   exc_inforF   r1   render_traceback_html)r   r   exctes       r   r   z!_InteractiveConsole.showtraceback   G    +ff]CLLN1$56Ca(

"2245r   c                    ddl m} t        j                  t        t        j                         d         } ||d      }t
        j                  j                  |j                                y )Nr   r      r   r   )r   r   r   r   r   s        r   showsyntaxerrorz#_InteractiveConsole.showsyntaxerror   r   r   c                B    t         j                  j                  |       y r   )rE   rF   r3   )r   datas     r   r3   z_InteractiveConsole.write   s    

r   )r   r{   rT   r{   r7   r8   )rq   r<   r   rg   r7   r<   )rp   r   r7   r8   r6   r   )r   rx   r7   r8   )r   r<   r7   r8   )r=   r>   r?   __annotations__r   r   r   r   r   r3   __classcell__)r   s   @r   rz   rz      s'    $03 !66r   rz   c                  0    e Zd ZdZ	 	 d	 	 	 	 	 ddZddZy)ConsolezAn interactive console.Nc                6    |i }|i }t        ||      | _        y r   )rz   r   )r   r   rT   s      r   r   zConsole.__init__   s&    
 >F?G'8	r   c                    t         j                  | j                          t        j                  }	 | j                   j	                  |      |t        _        S # |t        _        w xY wr   )r   rJ   rE   rF   r   )r   rp   old_sys_stdouts      r   evalzConsole.eval   sA    	(99&&t,'CJCJs   A A$)NN)r   dict[str, t.Any] | NonerT   r   r7   r8   )rp   r<   r7   r<   )r=   r>   r?   r@   r   r   r   r   r   r   r      s3    ! ,0*.	9(	9 (	9 
		9(r   r   )
__future__r   rp   rE   typingrG   contextvarsr   typesr   
markupsafer   rd   r   r	   r
   r   r   r   r   rB   rV   rS   rj   InteractiveInterpreterrz   r   r   r   r   <module>r      s    "  
  "     #-.M#N	  N(23O(P% P%( %(P/$ /$f  ,, $@$55 @F( (r   