Ë
    ÑÕ°jW$  ã                  ó  — 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y)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>c                ó4   — t        «       j                  | «      S )z1Creates a debug repr of an object as HTML string.)ÚDebugReprGeneratorÚrepr)Úobjs    úI/var/www/mission/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Ó!ˆÜ‡J�J×Ñ�bÕr   c                  ó"   — e Zd ZdZdd„Zddd„Zy)Ú_Helperz�Displays an HTML version of the normal help, for the interactive
    debugger only because it requires a patched sys.stdout.
    c                 ó   — y)Nz(Type help(object) for help about object.© ©Úselfs    r   Ú__repr__z_Helper.__repr__<   s   € Ø9r   Nc                ó�  — |€$t         j                  j                  d| ›d�«       y dd l}|j	                  |«       t         j                  j                  «       }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   r   z

ÚHelp)ÚtitleÚtext)r   r   r   ÚpydocÚhelpÚresetÚ_paragraph_reÚsplitÚlenÚjoinÚ	HELP_HTML)r    Útopicr'   r   Ú
paragraphsr%   r&   s          r   Ú__call__z_Helper.__call__?   sª   € Øˆ=Ü�J‰J×ÑÐ 1°$°¸ÐAÔBØÛà�
‰
�5ÔÜ�Z‰Z×ÑÓˆÜ"×(Ñ(¨Ó,ˆ
Üˆz‹?˜QÒØ˜q‘MˆEØ—;‘;˜z¨!¨"˜~Ó.‰DàˆEØ˜a‘=ˆDÜ�
‰
×Ñœ)°¸tÑ&DÑDÕEr   ©ÚreturnÚstr©N)r/   zt.Any | Noner3   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r1   r   r   r   r   r   7   s   „ ñó:õFr   r   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>ú(ú))Ú
isinstanceÚtupleÚtypeÚ	__class__r8   r7   )Úinnerr
   ÚbaseÚclsÚmodules        r   Ú_add_subclass_inforI   T   s’   € Ü�$œÔØò 	ˆCÜ�C‹y˜CÒØ’ñ	ô 
ˆc‹�dÑ	ØˆØ€FØ
‡}�}×ÑÐ'DÑDØ(¨¯©×)AÑ)AÐ(BÀ(ÐKˆØˆX”d˜3“i×(Ñ(Ð)¨¨5¨'°Ð3Ð3r   c                ó    ‡ ‡‡‡— dˆˆ ˆˆfd„}|S )Nc                ó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#   r<   )rI   Ú	enumerateÚappendr	   r-   )r    r
   Ú	recursiveÚbufÚhave_extended_sectionÚidxÚitemrF   ÚleftÚlimitÚrights          €€€€r   Úproxyz#_sequence_repr_maker.<locals>.proxyd   sµ   ø€ ÙÜ%¨¨¨c°%°Ð&9¸3ÀÓEÐEØˆfˆØ %ÐÜ" 3›ò 	(‰IˆC�ÙØ—
‘
˜4Ô Ø�eŠ|Ø—
‘
Ð4Ô5Ø(,Ð%Ø�J‰J�t—y‘y “Õ'ð	(ñ !Ø�J‰J�yÔ!Ø�
‰
�5ÔÜ! "§'¡'¨#£,°°TÓ:Ð:r   )r    r   r
   zt.Iterable[t.Any]rP   Úboolr3   r4   r   )rU   rW   rF   rV   rX   s   ```` r   Ú_sequence_repr_makerrZ   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	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	 d 	 	 	 	 	 	 	 d!d„Zy)"r   c                ó   — g | _         y r5   )Ú_stackr   s    r   Ú__init__zDebugReprGenerator.__init__y   s	   € Ø#%ˆ�r   ú[ú]r?   r@   zset([z])zfrozenset([z/<span class="module">collections.</span>deque([c                óp   — 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
   rd   s      r   Ú
regex_reprzDebugReprGenerator.regex_repr„   s=   € Ü�s—{‘{Ó#ˆÜ—-‘- Ð)9¸8ÓDˆØ�g�Y�-ˆØ7¸°yÀÐIÐIr   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">é   rM   r#   r<   r   z'"Úbr   )	r	   r,   Úextendr   rO   r-   rI   Úbytesr4   )r    r
   rV   rQ   rc   Úouts         r   Ústring_reprzDebugReprGenerator.string_reprŠ   s¾   € Ø&Ð'ˆÜ�‹Iˆô ˆq‹6�E‰>˜AÒØ�J‰Jä˜1˜V˜e˜9Ó%Ø-Ü˜1˜U˜V˜9Ó%Øð	õð �J‰J”v˜a“yÔ!à�
‰
�9ÔØ�g‰g�c‹lˆð ˆQ‰4�5‰=˜Q˜q™T Sš[¨Q¨q©T°U©]Ü% c¨3´¼°Ó=Ð=ð ˆ
r   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{...}ú{FrL   r   rM   Tz%<span class="pair"><span class="key">z</span>: <span class="value">z</span></span>r#   ú}r<   )rI   ÚdictrN   ÚitemsrO   r	   r-   )	r    ÚdrP   rV   rQ   rR   rS   ÚkeyÚvalues	            r   Ú	dict_reprzDebugReprGenerator.dict_repr¥   sà   € ñ Ü% g¨q´$Ó7Ð7ØˆeˆØ %ÐÜ!*¨1¯7©7«9Ó!5ò 		ÑˆC‘�#�uÙØ—
‘
˜4Ô Ø�e˜a‘iÒØ—
‘
Ð4Ô5Ø(,Ð%Ø�J‰JØ7¸¿	¹	À#»Ð7Gð H(Ø(,¯	©	°%Ó(8Ð'9¸ðIõð		ñ !Ø�J‰J�yÔ!Ø�
‰
�3ŒÜ! "§'¡'¨#£,°´4Ó8Ð8r   c                ó6   — t        |«      }dt        |«      › d�S )Nz<span class="object">r#   )r	   r   )r    r
   rc   s      r   Úobject_reprzDebugReprGenerator.object_repr¾   s   € Ü�‹IˆØ&¤v¨a£y k°Ð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">)ÚhelperrA   ÚintÚfloatÚcomplexr4   rl   rn   Ú	RegexTyperg   ÚlistÚ	list_reprrB   Ú
tuple_reprÚsetÚset_reprÚ	frozensetÚfrozenset_reprrr   rw   r   Ú
deque_reprry   )r    r
   rP   s      r   Údispatch_reprz DebugReprGenerator.dispatch_reprÂ   s*  € Ø”&‰=Ø(¬¨
°'Ð:Ð:Ü�cœC¤¬Ð0Ô1Ø*¨3¨'°Ð9Ð9Ü�cœ3Ô¤:¨c´5Ô#9Ø×#Ñ# CÓ(Ð(Ü�cœ9Ô%Ø—?‘? 3Ó'Ð'Ü�cœ4Ô Ø—>‘> # yÓ1Ð1Ü�cœ5Ô!Ø—?‘? 3¨	Ó2Ð2Ü�cœ3ÔØ—=‘=  iÓ0Ð0Ü�cœ9Ô%Ø×&Ñ& s¨IÓ6Ð6Ü�cœ4Ô Ø—>‘> # yÓ1Ð1Ü�cœ5Ô!Ø—?‘? 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)Nr<   ri   ú?z*<span class="brokenrepr">&lt;broken repr (z)&gt;</span>)r-   r   r   Úexc_infoÚ	Exceptionr   Ústrip)r    Úinfos     r   Úfallback_reprz DebugReprGenerator.fallback_reprÙ   sa   € ð	Ø—7‘7Ô0´#·,±,³.ÀÀ!Ð2DÐEÓFˆDð Ü & t§z¡z£|Ó 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]   rO   rˆ   ÚpoprŒ   r�   )r    r
   rP   rT   s       r   r	   zDebugReprGenerator.reprã   s¦   € Øˆ	Ø—K‘Kò 	ˆDØ�sŠ{Ø �	Ùð	ð 	�‰×Ñ˜3Ôð	ð,Ø×)Ñ)¨#¨yÓ9ð �K‰K�O‰OÕøô ò ,Ø×)Ñ)Ó+Ñ+à�K‰K�O‰OÕð,ûð �K‰K�O‰OÕú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   éÿÿÿÿ)rA   rr   rs   r4   rO   r	   ÚdirÚgetattrrŒ   Úobjectr!   Úrender_object_dump)r    r
   r	   rs   r%   ru   rv   s          r   r   zDebugReprGenerator.dump_objectò   s	  € ØˆØ.2ˆä�cœ4Ô Ø!ˆEØˆEØ!Ÿi™i›kò 6‘
��UÜ! #¤sÔ+Ø �EÙØ—‘˜c 4§9¡9¨UÓ#3Ð4Õ5ð	6ð
 ˆ=ØˆEØ—9‘9˜S“>ˆDÜ˜3“xò �ðØ—L‘L # t§y¡y´¸¸cÓ1BÓ'CÐ!DÕEðð
 "ˆEØ�1”V—_‘_ SÓ)¨!¨BÐ/Ð0Ð1Ñ1ˆØ×&Ñ& u¨e°TÓ:Ð:øô	 !ò Ùðús   Â,C,Ã,	C8Ã7C8c                ó˜   — |j                  «       D ��cg c]  \  }}|| j                  |«      f‘Œ }}}| j                  |d«      S c c}}w )NzLocal variables in frame)rs   r	   r˜   )r    rt   ru   rv   rs   s        r   r   zDebugReprGenerator.dump_locals
  sG   € Ø;<¿7¹7»9×E©Z¨S°%�#�t—y‘y Ó'Ò(ÐEˆÑEØ×&Ñ& uÐ.HÓIÐIùó Fs   ”ANc                óÜ   — 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>r<   ú
)r%   r	   rs   )rO   r   ÚOBJECT_DUMP_HTMLr-   )r    rs   r%   r	   Ú
html_itemsru   rv   s          r   r˜   z%DebugReprGenerator.render_object_dump  s‰   € ð ˆ
Øò 	Y‰JˆC�Ø×Ñ ¬°«¨Ð5IÈ%ÈÐPVÐWÕXð	YáØ×ÑÐ8Ô9ÜÜ˜E“]Ø&©t¡t¸Ð&<¸FÐCØ—Y‘Y˜zÓ*ñ#
ñ 
ð 	
r   )r3   r6   )r
   zt.Pattern[t.AnyStr]r3   r4   )éF   )r
   zstr | bytesrV   r|   r3   r4   )é   )rt   z7dict[int, None] | dict[str, int] | dict[str | int, int]rP   rY   rV   r|   r3   r4   )r
   út.Anyr3   r4   )r
   r    rP   rY   r3   r4   r2   ©r
   r—   r3   r4   )rt   zdict[str, t.Any]r3   r4   r5   )rs   zlist[tuple[str, str]]r%   r4   r	   z
str | Noner3   r4   )r7   r8   r9   r^   rZ   r€   r�   rB   r‚   rƒ   r„   r…   r†   r   r‡   rg   rn   rw   ry   rˆ   r�   r	   r   r   r˜   r   r   r   r   r   x   sØ   „ ó&ñ % S¨#¨tÓ4€IÙ% c¨3°Ó6€JÙ# G¨T°3Ó7€HÙ)¨-¸¸yÓI€NÙ%Ø9¸4Àó€JóJôð> ð	9àBð9ð ð9ð ð	9ð
 
ó9ó2:ó%ó.
óó;ó0Jð
 LPð
Ø*ð
Ø36ð
Ø>Hð
à	ô
r   r   r¡   )r
   r—   r3   r6   )rE   r4   r
   r—   rF   ztype | tuple[type, ...]r3   r4   )é   )
rU   r4   rW   r4   rF   rC   rV   r|   r3   z>t.Callable[[DebugReprGenerator, t.Iterable[t.Any], bool], str])r:   Ú
__future__r   re   Úrer   ÚtypingÚtÚcollectionsr   Ú	tracebackr   Ú
markupsafer   r—   r   Úcompiler*   rC   r   r.   rœ   r   r   r   r{   rI   rZ   r   r   r   r   ú<module>r«      s¼   ðñõ #ã Û 	Û 
Û Ý Ý +å á
‹(€Ø�—
‘
Ð0Ó1€Ù�Ó€	ð€	ðÐ ó*ð
 ô 	÷Fñ Fñ4 
‹€ó
4ð 56ðØ
ðØðØ!%ðØ.1ðàCó÷.b
ò b
r   