§
    ß·iW$  ã                  ó  — d Z ddlm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!d„Zefd"d„Z G d„ d¦  «        Z e¦   «         Zd#d„Z	 d$d%d„Z G d„ d ¦  «        ZdS )&zîObject 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.
é    )ÚannotationsN)Údeque)Úformat_exception_only)Úescapez(?:\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ÚobjectÚreturnÚstrc                óD   — t          ¦   «                              | ¦  «        S )z1Creates a debug repr of an object as HTML string.)ÚDebugReprGeneratorÚrepr)r   s    úX/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/werkzeug/debug/repr.pyÚ
debug_reprr   &   s   € åÑÔ×$Ò$ SÑ)Ô)Ð)ó    ÚNonec                óö   — t          ¦   «         }| t          u r-|                     t          j        d¦  «        j        ¦  «        }n|                     | ¦  «        }t          j                             |¦  «         dS )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   +   se   € õ Ñ
Ô
€CØ
�g€~€~Ø�_Š_�Sœ]¨1Ñ-Ô-Ô6Ñ7Ô7ˆˆà�_Š_˜SÑ!Ô!ˆÝ„J×Ò�bÑÔÐÐÐr   c                  ó$   — e Zd ZdZd
d„Zddd	„ZdS )Ú_Helperz�Displays an HTML version of the normal help, for the interactive
    debugger only because it requires a patched sys.stdout.
    r	   r
   c                ó   — dS )Nz(Type help(object) for help about object.© ©Úselfs    r   Ú__repr__z_Helper.__repr__<   s   € Ø9Ð9r   NÚtopicút.Any | Noner   c                óÐ  — |€%t           j                             d| ›d�¦  «         d S dd l}|                     |¦  «         t           j                             ¦   «         }t                               |¦  «        }t          |¦  «        dk    r&|d         }d 	                    |dd …         ¦  «        }n
d}|d         }t           j                             t          ||dœz  ¦  «         d S )Nz<span class=help>ú</span>r   r   z

ÚHelp)ÚtitleÚtext)r   r   r   ÚpydocÚhelpÚresetÚ_paragraph_reÚsplitÚlenÚjoinÚ	HELP_HTML)r$   r&   r-   r   Ú
paragraphsr+   r,   s          r   Ú__call__z_Helper.__call__?   sÛ   € Øˆ=ÝŒJ×ÒÐA°$ÐAÐAÐAÑBÔBÐBØˆFØˆˆˆà�
Š
�5ÑÔÐÝŒZ×ÒÑÔˆÝ"×(Ò(¨Ñ,Ô,ˆ
Ýˆz‰?Œ?˜QÒÐØ˜q”MˆEØ—;’;˜z¨!¨"¨"œ~Ñ.Ô.ˆDˆDàˆEØ˜a”=ˆDÝŒ
×Ò�)°¸tÐ&DÐ&DÑDÑEÔEÐEÐEÐEr   ©r	   r
   ©N)r&   r'   r	   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   r6   r"   r   r   r    r    7   sR   € € € € € ðð ð:ð :ð :ð :ðFð Fð Fð Fð Fð Fð Fr   r    ÚinnerÚbaseútype | tuple[type, ...]c                ó   — t          |t          ¦  «        r|D ]}t          |¦  «        |u r| 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>ú(ú))Ú
isinstanceÚtupleÚtypeÚ	__class__r:   r9   )r=   r   r>   ÚclsÚmodules        r   Ú_add_subclass_inforL   T   s¯   € Ý�$�ÑÔð Øð 	ð 	ˆCÝ�C‰yŒy˜CÐÐØ���ð  ð	õ 
ˆc‰Œ�dÐ	Ð	ØˆØ€FØ
„}ÔÐ'DÐDÐDØK¨¬Ô)AÐKÐKÐKˆØÐ3•d˜3‘i”iÔ(Ð3Ð3¨5Ð3Ð3Ð3Ð3r   é   ÚleftÚrightrH   ÚlimitÚintú>t.Callable[[DebugReprGenerator, t.Iterable[t.Any], bool], str]c                ó    ‡ ‡‡‡— d
ˆˆ ˆˆfd	„}|S )Nr$   r   r   út.Iterable[t.Any]Ú	recursiveÚboolr	   r
   c                óÀ  •— |rt          ‰› d‰
› �|‰¦  «        S ‰g}d}t          |¦  «        D ]a\  }}|r|                     d¦  «         |‰	k    r|                     d¦  «         d}|                     |                      |¦  «        ¦  «         Œb|r|                     d¦  «         |                     ‰
¦  «         t          d                     |¦  «        |‰¦  «        S )Nz...Fú, ú<span class="extended">Tr)   rA   )rL   Ú	enumerateÚappendr   r3   )r$   r   rU   ÚbufÚhave_extended_sectionÚidxÚitemr>   rN   rP   rO   s          €€€€r   Úproxyz#_sequence_repr_maker.<locals>.proxyd   sõ   ø€ Øð 	FÝ%¨Ð&9Ð&9°%Ð&9Ð&9¸3ÀÑEÔEÐEØˆfˆØ %ÐÝ" 3™œð 	(ð 	(‰IˆC�Øð !Ø—
’
˜4Ñ Ô Ð Ø�eŠ|ˆ|Ø—
’
Ð4Ñ5Ô5Ð5Ø(,Ð%Ø�JŠJ�t—y’y ‘”Ñ'Ô'Ð'Ð'Ø ð 	"Ø�JŠJ�yÑ!Ô!Ð!Ø�
Š
�5ÑÔÐÝ! "§'¢'¨#¡,¤,°°TÑ:Ô:Ð:r   )r$   r   r   rT   rU   rV   r	   r
   r"   )rN   rO   r>   rP   r`   s   ```` r   Ú_sequence_repr_makerra   a   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,d„Zd-d.d„Z	 d/d0d„Zd1d„Zd2d„Zd3d„Zd4d „Zd4d!„Zd5d#„Z	 d6d7d*„Zd$S )8r   r	   r   c                ó   — g | _         d S r8   )Ú_stackr#   s    r   Ú__init__zDebugReprGenerator.__init__y   s   € Ø#%ˆŒˆˆr   ú[ú]rD   rE   zset([z])zfrozenset([z/<span class="module">collections.</span>deque([r   út.Pattern[t.AnyStr]r
   c                ól   — t          |j        ¦  «        }t          j        |dd¦  «        }d|› �}d|› d�S )Nzunicode-escapeÚignoreÚrz&re.compile(<span class="string regex">z</span>))r   ÚpatternÚcodecsÚdecode)r$   r   rl   s      r   Ú
regex_reprzDebugReprGenerator.regex_repr„   sA   € Ý�s”{Ñ#Ô#ˆÝ”- Ð)9¸8ÑDÔDˆØ�g�-�-ˆØI¸ÐIÐIÐIÐIr   éF   ústr | bytesrP   rQ   c           	     óð  — dg}t          |¦  «        }t          |¦  «        |z
  dk    rD|                     t          |d |…         ¦  «        dt          ||d …         ¦  «        df¦  «         n"|                     t          |¦  «        ¦  «         |                     d¦  «         d                     |¦  «        }|d         dv s|d         dk    r'|d	         dv rt          ||t          t          f¦  «        S |S )
Nz<span class="string">é   rY   r)   rA   r   z'"Úbr   )	r   r2   Úextendr   r[   r3   rL   Úbytesr
   )r$   r   rP   r\   rk   Úouts         r   Ústring_reprzDebugReprGenerator.string_reprŠ   s÷   € Ø&Ð'ˆÝ�‰IŒIˆõ ˆq‰6Œ6�E‰>˜AÒÐØ�JŠJå˜1˜V˜e˜Vœ9Ñ%Ô%Ø-Ý˜1˜U˜V˜Vœ9Ñ%Ô%Øð	ñô ð ð ð �JŠJ•v˜a‘y”yÑ!Ô!Ð!à�
Š
�9ÑÔÐØ�gŠg�c‰lŒlˆð ˆQŒ4�5ˆ=ˆ=˜Q˜qœT Sš[˜[¨Q¨q¬T°U¨]¨]Ý% c¨3µ½°Ñ=Ô=Ð=ð ˆ
r   é   Údú7dict[int, None] | dict[str, int] | dict[str | int, int]rU   rV   c           	     ó,  — |rt          d|t          ¦  «        S dg}d}t          |                     ¦   «         ¦  «        D ]�\  }\  }}|r|                     d¦  «         ||dz
  k    r|                     d¦  «         d}|                     d|                      |¦  «        › d	|                      |¦  «        › d
�¦  «         Œ‚|r|                     d¦  «         |                     d¦  «         t          d                     |¦  «        |t          ¦  «        S )Nz{...}ú{FrX   r   rY   Tz%<span class="pair"><span class="key">z</span>: <span class="value">z</span></span>r)   ú}rA   )rL   ÚdictrZ   Úitemsr[   r   r3   )	r$   rz   rU   rP   r\   r]   r^   ÚkeyÚvalues	            r   Ú	dict_reprzDebugReprGenerator.dict_repr¥   s6  € ð ð 	8Ý% g¨qµ$Ñ7Ô7Ð7ØˆeˆØ %ÐÝ!*¨1¯7ª7©9¬9Ñ!5Ô!5ð 		ð 		ÑˆC‘�#�uØð !Ø—
’
˜4Ñ Ô Ð Ø�e˜a‘iÒÐØ—
’
Ð4Ñ5Ô5Ð5Ø(,Ð%Ø�JŠJðI¸¿	º	À#¹¼ð Ið IØ(,¯	ª	°%Ñ(8Ô(8ðIð Ið Iñô ð ð ð !ð 	"Ø�JŠJ�yÑ!Ô!Ð!Ø�
Š
�3‰ŒˆÝ! "§'¢'¨#¡,¤,°µ4Ñ8Ô8Ð8r   út.Anyc                óF   — t          |¦  «        }dt          |¦  «        › d�S )Nz<span class="object">r)   )r   r   )r$   r   rk   s      r   Úobject_reprzDebugReprGenerator.object_repr¾   s$   € Ý�‰IŒIˆØ9¥v¨a¡y¤yÐ9Ð9Ð9Ð9r   c                óz  — |t           u rdt           ›d�S t          |t          t          t          f¦  «        rd|›d�S t          |t
          ¦  «        st          |t          ¦  «        r|                      |¦  «        S t          |t          ¦  «        r|  	                    |¦  «        S t          |t          ¦  «        r|                      ||¦  «        S t          |t          ¦  «        r|                      ||¦  «        S t          |t          ¦  «        r|                      ||¦  «        S t          |t           ¦  «        r|                      ||¦  «        S t          |t$          ¦  «        r|                      ||¦  «        S t          |t(          ¦  «        r|                      ||¦  «        S |                      |¦  «        S )Nz<span class="help">r)   z<span class="number">)ÚhelperrF   rQ   ÚfloatÚcomplexr
   rv   rx   Ú	RegexTypero   ÚlistÚ	list_reprrG   Ú
tuple_reprÚsetÚset_reprÚ	frozensetÚfrozenset_reprr   rƒ   r   Ú
deque_reprr†   )r$   r   rU   s      r   Údispatch_reprz DebugReprGenerator.dispatch_reprÂ   s›  € Ø•&ˆ=ˆ=Ø:­Ð:Ð:Ð:Ð:Ý�c�C¥­Ð0Ñ1Ô1ð 	:Ø9¨3Ð9Ð9Ð9Ð9Ý�c�3ÑÔð 	)¥:¨cµ5Ñ#9Ô#9ð 	)Ø×#Ò# CÑ(Ô(Ð(Ý�c�9Ñ%Ô%ð 	(Ø—?’? 3Ñ'Ô'Ð'Ý�c�4Ñ Ô ð 	2Ø—>’> # yÑ1Ô1Ð1Ý�c�5Ñ!Ô!ð 	3Ø—?’? 3¨	Ñ2Ô2Ð2Ý�c�3ÑÔð 	1Ø—=’=  iÑ0Ô0Ð0Ý�c�9Ñ%Ô%ð 	7Ø×&Ò& s¨IÑ6Ô6Ð6Ý�c�4Ñ Ô ð 	2Ø—>’> # yÑ1Ô1Ð1Ý�c�5Ñ!Ô!ð 	3Ø—?’? 3¨	Ñ2Ô2Ð2Ø×Ò Ñ$Ô$Ð$r   c                óÞ   — 	 d                      t          t          j        ¦   «         d d…         Ž ¦  «        }n# t          $ r d}Y nw xY wdt          |                     ¦   «         ¦  «        › d�S )NrA   rs   ú?z*<span class="brokenrepr">&lt;broken repr (z)&gt;</span>)r3   r   r   Úexc_infoÚ	Exceptionr   Ústrip)r$   Úinfos     r   Úfallback_reprz DebugReprGenerator.fallback_reprÙ   sƒ   € ð	Ø—7’7Õ0µ#´,±.´.ÀÀ!ÀÔ2DÐEÑFÔFˆDˆDøÝð 	ð 	ð 	ØˆDˆDˆDð	øøøðCÝ & t§z¢z¡|¤|Ñ 4Ô 4ðCð Cð Cð	
s   ‚58 ¸AÁAr   c                óv  — d}| j         D ]
}||u rd} nŒ| j                              |¦  «         	 	 |                      ||¦  «        | j                              ¦   «          S # t          $ r0 |                      ¦   «         cY | j                              ¦   «          S w xY w# | j                              ¦   «          w xY w)NFT)rd   r[   r”   Úpopr˜   r›   )r$   r   rU   r_   s       r   r   zDebugReprGenerator.reprã   sÞ   € Øˆ	Ø”Kð 	ð 	ˆDØ�sˆ{ˆ{Ø �	Ø�ð ð 	Œ×Ò˜3ÑÔÐð	ð,Ø×)Ò)¨#¨yÑ9Ô9ð ŒK�OŠOÑÔÐÐøõ ð ,ð ,ð ,Ø×)Ò)Ñ+Ô+Ð+Ð+àŒK�OŠOÑÔÐÐð,øøøøð ŒK�OŠOÑÔÐÐøøøs#   ±A  Á BÁ>B ÂBÂB ÂB8c           
     ó`  — d }d }t          |t          ¦  «        rad}g }|                     ¦   «         D ]H\  }}t          |t          ¦  «        sd } n+|                     ||                      |¦  «        f¦  «         ŒI|€tg }|                      |¦  «        }t          |¦  «        D ]K}	 |                     ||                      t          ||¦  «        ¦  «        f¦  «         Œ<# t          $ r Y ŒHw xY wd}|dt           
                    |¦  «        dd…         › �z  }|                      |||¦  «        S )NzContents ofzDetails forÚ r   éÿÿÿÿ)rF   r   r€   r
   r[   r   ÚdirÚgetattrr˜   r   r%   Úrender_object_dump)r$   r   r   r€   r+   r�   r‚   s          r   r   zDebugReprGenerator.dump_objectò   sM  € ØˆØ.2ˆå�c�4Ñ Ô ð 	6Ø!ˆEØˆEØ!Ÿiši™kœkð 6ð 6‘
��UÝ! #¥sÑ+Ô+ð Ø �EØ�EØ—’˜c 4§9¢9¨UÑ#3Ô#3Ð4Ñ5Ô5Ð5Ð5Øˆ=ØˆEØ—9’9˜S‘>”>ˆDÝ˜3‘x”xð ð �ðØ—L’L # t§y¢yµ¸¸cÑ1BÔ1BÑ'CÔ'CÐ!DÑEÔEÐEÐEøÝ ð ð ð Ø�Dðøøøà!ˆEØÐ1•V—_’_ SÑ)Ô)¨!¨B¨$Ô/Ð1Ð1Ñ1ˆØ×&Ò& u¨e°TÑ:Ô:Ð:s   Â&8CÃ
C,Ã+C,údict[str, t.Any]c                óp   ‡ — ˆ fd„|                      ¦   «         D ¦   «         }‰                      |d¦  «        S )Nc                óD   •— g | ]\  }}|‰                      |¦  «        f‘ŒS r"   )r   )Ú.0r�   r‚   r$   s      €r   ú
<listcomp>z2DebugReprGenerator.dump_locals.<locals>.<listcomp>  s.   ø€ ÐEÐEÐE©Z¨S°%�#�t—y’y Ñ'Ô'Ð(ÐEÐEÐEr   zLocal variables in frame)r€   r£   )r$   rz   r€   s   `  r   r   zDebugReprGenerator.dump_locals
  s;   ø€ ØEÐEÐEÐE¸1¿7º7¹9¼9ÐEÑEÔEˆØ×&Ò& uÐ.HÑIÔIÐIr   Nr€   úlist[tuple[str, str]]r+   r   ú
str | Nonec                ó  — g }|D ].\  }}|                      dt          |¦  «        › d|› d�¦  «         Œ/|s|                      d¦  «         t          t          |¦  «        d|r|nd› d�d                     |¦  «        dœz  S )	Nz<tr><th>z<td><pre class=repr>z</pre>z<tr><td><em>Nothing</em>z<pre class=repr>rA   Ú
)r+   r   r€   )r[   r   ÚOBJECT_DUMP_HTMLr3   )r$   r€   r+   r   Ú
html_itemsr�   r‚   s          r   r£   z%DebugReprGenerator.render_object_dump  s²   € ð ˆ
Øð 	Yð 	Y‰JˆC�Ø×ÒÐW­°©¬ÐWÐWÈ%ÐWÐWÐWÑXÔXÐXÐXØð 	:Ø×ÒÐ8Ñ9Ô9Ð9ÝÝ˜E‘]”]ØC¨tÐ'; t t¸ÐCÐCÐCØ—Y’Y˜zÑ*Ô*ð#
ð #
ñ 
ð 	
r   )r	   r   )r   rh   r	   r
   )rp   )r   rq   rP   rQ   r	   r
   )ry   )rz   r{   rU   rV   rP   rQ   r	   r
   )r   r„   r	   r
   )r   r„   rU   rV   r	   r
   r7   ©r   r   r	   r
   )rz   r¤   r	   r
   r8   )r€   r©   r+   r
   r   rª   r	   r
   )r9   r:   r;   re   ra   rŒ   r�   rG   rŽ   r�   r�   r‘   r’   r   r“   ro   rx   rƒ   r†   r”   r›   r   r   r   r£   r"   r   r   r   r   x   s~  € € € € € ð&ð &ð &ð &ð %Ð$ S¨#¨tÑ4Ô4€IØ%Ð% c¨3°Ñ6Ô6€JØ#Ð# G¨T°3Ñ7Ô7€HØ)Ð)¨-¸¸yÑIÔI€NØ%Ð%Ø9¸4Àñô €JðJð Jð Jð Jðð ð ð ð ð> ð	9ð 9ð 9ð 9ð 9ð2:ð :ð :ð :ð%ð %ð %ð %ð.
ð 
ð 
ð 
ðð ð ð ð;ð ;ð ;ð ;ð0Jð Jð Jð Jð
 LPð
ð 
ð 
ð 
ð 
ð 
ð 
r   r   r¯   )r   r   r	   r   )r=   r
   r   r   r>   r?   r	   r
   )rM   )
rN   r
   rO   r
   r>   rH   rP   rQ   r	   rR   )r<   Ú
__future__r   rm   Úrer   ÚtypingÚtÚcollectionsr   Ú	tracebackr   Ú
markupsafer   r   r   Úcompiler0   rH   r‹   r4   r­   r   r   r    rˆ   rL   ra   r   r"   r   r   ú<module>r¸      s˜  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +à Ð Ð Ð Ð Ð à
ˆ&‰(Œ(€Ø�”
Ð0Ñ1Ô1€ØˆD�ÑÔ€	ð€	ðÐ ð*ð *ð *ð *ð
 ð 	ð 	ð 	ð 	ð 	ðFð Fð Fð Fð Fñ Fô Fð Fð4 
ˆ‰Œ€ð
4ð 
4ð 
4ð 
4ð 56ðð ð ð ð ð.b
ð b
ð b
ð b
ð b
ñ b
ô b
ð b
ð b
ð b
r   