
    2Bf%                        d Z ddl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  e       Z ej                  d      Z ee      ZdZdZd	ed
efdZefd	ed
dfdZ G d d      Z e       Zded	edej2                  ej4                  ej6                  ej4                  df   f   d
efdZ	 ddededej4                  ded
ej<                  dej>                  e gef   f
dZ! G d d      Z"y)zObject representations for debugging purposes. Unlike the default
repr, these expose more information and produce HTML instead of ASCII.

Together with the CSS and JavaScript of the debugger this gives a
colorful and more compact output.
    N)deque)escape)format_exception_onlyz(?:\r\n|\r|\n){2,}zL<div class=box>
  <h3>%(title)s</h3>
  <pre class=help>%(text)s</pre>
</div>zQ<div class=box>
  <h3>%(title)s</h3>
  %(repr)s
  <table>%(items)s</table>
</div>objreturnc                 4    t               j                  |       S )z1Creates a debug repr of an object as HTML string.)DebugReprGeneratorrepr)r   s    S/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/werkzeug/debug/repr.py
debug_reprr   "   s    $$S))    c                     t               }| t        u r/|j                  t        j                  d      j
                        }n|j                  |       }t        j                  j                  |       y)zdPrint the object details to stdout._write (for the interactive
    console of the web debugger.
       N)	r	   missingdump_localssys	_getframef_localsdump_objectstdout_write)r   genrvs      r   dumpr   '   sP     
C
g~__S]]1-667__S!JJbr   c                   \    e Zd ZdZdefdZddej                  ej                     ddfdZ	y)_HelperzDisplays an HTML version of the normal help, for the interactive
    debugger only because it requires a patched sys.stdout.
    r   c                      y)Nz(Type help(object) for help about object. selfs    r   __repr__z_Helper.__repr__8   s    9r   Ntopicc                    |$t         j                  j                  d| d       y dd l}|j	                  |       t         j                  j                         }t        |t              r|j                  dd      }t        j                  |      }t        |      dkD  r|d   }dj                  |dd        }nd}|d   }t         j                  j                  t        ||d	z         y )
Nz<span class=help></span>r   zutf-8ignorer   z

Help)titletext)r   r   r   pydochelpreset
isinstancebytesdecode_paragraph_resplitlenjoin	HELP_HTML)r    r"   r)   r   
paragraphsr'   r(   s          r   __call__z_Helper.__call__;   s    =JJ 1$AB

5ZZb% 7H-B"((,
z?QqME;;z!"~.DEa=D

)t&DDEr   N)
__name__
__module____qualname____doc__strr!   tOptionalAnyr5   r   r   r   r   r   3   s6    :# :Fajj/ F4 Fr   r   innerbase.c                    t        |t              r|D ]  }t        |      |u s| c S  nt        |      |u r| S d}|j                  j                  dvrd|j                  j                   d}| t        |      j
                   d|  dS )N )__builtin__
exceptionsz<span class="module">z.</span>())r,   tupletype	__class__r8   r7   )r?   r   r@   modules       r   _add_subclass_inforK   R   s     $ 	DCyD 	 
cd	F
}}'DD()A)A(B(KXd3i(()5'33r   leftrightlimitr	   c                 \     dddt         j                  dt        dt        f fd}|S )Nr    r	   r   	recursiver   c                 r   |rt         d
 |      S g}d}t        |      D ]P  \  }}|r|j                  d       |	k(  r|j                  d       d}|j                  | j                  |             R |r|j                  d       |j                  
       t        dj	                  |      |      S )Nz...F, <span class="extended">Tr$   rB   )rK   	enumerateappendr
   r2   )r    r   rP   bufhave_extended_sectionidxitemr@   rL   rN   rM   s          r   proxyz#_sequence_repr_maker.<locals>.proxyd   s    %c%&93EEf %"3 	(IC

4 e|

45(,%JJtyy'	( !JJy!

5!"''#,T::r   )r<   Iterableboolr;   )rL   rM   r@   rN   rZ   s   ```` r   _sequence_repr_makerr]   a   s5    ;( ;qzz ;d ;s ; ;" Lr   c            	          e Zd ZddZ edde      Z edde      Z edd	e	      Z
 ed
d	e      Z edd	e      Zdej                   defdZddej&                  eef   dedefdZ	 ddej&                  ej.                  edf   ej.                  eef   ej.                  ej&                  eef   ef   f   dededefdZdej4                  ej&                  ej6                  e   ej:                  ej6                  e   f      defdZdej>                  dedefdZ defdZ!de"defdZ#de"defdZ$dej.                  eej>                  f   defdZ%	 d dejL                  ejN                  eef      dedej4                  e   defdZ(y)!r	   r   Nc                     g | _         y r6   )_stackr   s    r   __init__zDebugReprGenerator.__init__y   s	    %'r   []rE   rF   zset([z])zfrozenset([z/<span class="module">collections.</span>deque([r   c                 p    t        |j                        }t        j                  |dd      }d| }d| dS )Nzunicode-escaper%   rz&re.compile(<span class="string regex">z</span>))r
   patterncodecsr.   )r    r   rf   s      r   
regex_reprzDebugReprGenerator.regex_repr   s=    s{{#--)98DgY-7yIIr   rN   c           	      r   dg}t        |      }t        |      |z
  dkD  r.|j                  t        |d |       dt        ||d        df       n|j	                  t        |             |j	                  d       dj                  |      }|d   dv s|d   dk(  r|d	   dv rt        ||t        t        f      S |S )
Nz<span class="string">   rS   r$   rB   r   z'"br   )	r
   r1   extendr   rU   r2   rK   r-   r;   )r    r   rN   rV   re   outs         r   string_reprzDebugReprGenerator.string_repr   s    &'I q6E>AJJ1Ve9%-1UV9%	 JJvay!

9ggcl Q45=QqTS[QqTU]%c3== 
r   drP   c           	         |rt        d|t              S dg}d}t        |j                               D ]l  \  }\  }}|r|j	                  d       ||dz
  k(  r|j	                  d       d}|j	                  d| j                  |       d	| j                  |       d
       n |r|j	                  d       |j	                  d       t        dj                  |      |t              S )Nz{...}{FrR   r   rS   Tz%<span class="pair"><span class="key">z</span>: <span class="value">z</span></span>r$   }rB   )rK   dictrT   itemsrU   r
   r2   )	r    ro   rP   rN   rV   rW   rX   keyvalues	            r   	dict_reprzDebugReprGenerator.dict_repr   s     %gq$77e %!*1779!5 		C#u

4 eai

45(,%JJ7		#7G H((,		%(8'9I		 !JJy!

3!"''#,488r   c                 6    t        |      }dt        |       dS )Nz<span class="object">r$   )r
   r   )r    r   re   s      r   object_reprzDebugReprGenerator.object_repr   s      I&vayk99r   c                    |t         u r
dt         dS t        |t        t        t        f      rd|dS t        |t
              st        |t              r| j                  |      S t        |t              r| j                  |      S t        |t              r| j                  ||      S t        |t              r| j                  ||      S t        |t              r| j                  ||      S t        |t               r| j#                  ||      S t        |t$              r| j'                  ||      S t        |t(              r| j+                  ||      S | j-                  |      S )Nz<span class="help">r$   z<span class="number">)helperr,   intfloatcomplexr;   r-   rn   	RegexTyperh   list	list_reprrG   
tuple_reprsetset_repr	frozensetfrozenset_reprrs   rw   r   
deque_reprry   )r    r   rP   s      r   dispatch_reprz DebugReprGenerator.dispatch_repr   s*   &=(
'::cC01*3'99c3:c5#9##C((c9%??3''c4 >>#y11c5!??3	22c3==i00c9%&&sI66c4 >>#y11c5!??3	22$$r   c                     	 dj                  t        t        j                         d d        }dt        |j                                dS # t        $ r d}Y *w xY w)NrB   rj   ?z*<span class="brokenrepr">&lt;broken repr (z)&gt;</span>)r2   r   r   exc_info	Exceptionr   strip)r    infos     r   fallback_reprz DebugReprGenerator.fallback_repr   sa    	770#,,.!2DEFD  &tzz| 45\C	
  	D	s   ,A AAc                 z   d}| j                   D ]
  }||u sd} n | j                   j                  |       	 	 | j                  ||      | j                   j                          S # t        $ r- | j                         cY | j                   j                          S w xY w# | j                   j                          w xY w)NFT)r`   rU   r   popr   r   )r    r   rP   rY   s       r   r
   zDebugReprGenerator.repr   s    	KK 	Ds{ 		 	3	,))#y9 KKOO  ,))++KKOO, KKOOs#   A% %B>B BB B:c           
         d }d }t        |t              rRd}g }|j                         D ];  \  }}t        |t              sd } n$|j	                  || j                  |      f       = |Rg }| j                  |      }t        |      D ]/  }	 |j	                  || j                  t        ||            f       1 d}dt        j                  |      dd  z  }| j                  |||      S # t        $ r Y pw xY w)NzContents ofzDetails for r   )r,   rs   rt   r;   rU   r
   dirgetattrr   objectr!   render_object_dump)r    r   r
   rt   r'   ru   rv   s          r   r   zDebugReprGenerator.dump_object   s	   7;c4 !EE!iik 6
U!#s+ Ec499U#345	6
 =E99S>D3x LL#tyyc1B'C!DE
 "E1V__S)!B/011&&ueT::	 ! s   ,C,,	C87C8c                     |j                         D cg c]  \  }}|| j                  |      f }}}| j                  |d      S c c}}w )NzLocal variables in frame)rt   r
   r   )r    ro   ru   rv   rt   s        r   r   zDebugReprGenerator.dump_locals  sG    ;<779EZS%#tyy'(EE&&u.HII Fs   Art   r'   r
   c                     g }|D ]&  \  }}|j                  dt        |       d| d       ( |s|j                  d       t        t        |      d|r|nd ddj                  |      dz  S )	Nz<tr><th>z<td><pre class=repr>z</pre>z<tr><td><em>Nothing</em>z<pre class=repr>rB   
)r'   r
   rt   )rU   r   OBJECT_DUMP_HTMLr2   )r    rt   r'   r
   
html_itemsru   rv   s          r   r   z%DebugReprGenerator.render_object_dump  s     
 	YJC5I%PVWX	Y89E]&tt&<FCYYz*#
 
 	
r   )r   N)F   )   r6   ))r7   r8   r9   ra   r]   r   r   rG   r   r   r   r   r   r   r   r<   Patternr;   rh   Unionr-   r|   rn   Dictr\   rw   r=   Typers   Callablery   r>   r   r   r   r
   r   r   ListTupler   r   r   r   r	   r	   x   s   ( %S#t4I%c36J#GT37H)-yIN%94JJaii JC JqwwsEz2 3  > 	977166#t)$affS#X&6qwwsCx?PRU?U8VVW9 9 	9
 
92:::aggaffTlAJJt&LMN:	:% %4 %C %.
s 
 3 ;v ;# ;0JQVVCJ/ JC J
 UY
VVAGGCH-.
7:
BC**S/
	
r   )   )#r:   rg   rer   typingr<   collectionsr   htmlr   	tracebackr   r   r   compiler/   rH   r   r3   r   r;   r   r   r   r{   r   r   r   rK   r|   r   r[   r\   r]   r	   r   r   r   <module>r      s6    	 
    +
(

01		 *F *s *
  	f 	4 	F F8 
444#$771661771663;3G+G#H44  78
!"03ZZ%qzz48#=>.d
 d
r   