U a % @s dZddlZddlZddlZddlZddlmZddlm Z ddl m Z e Z edZeeZdZdZe ed d d Ze fe dd d d ZGdddZeZee ejejejejdffedddZdeeejeejdeje gefdddZ!GdddZ"dS)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

%(title)s

%(text)s
zQ

%(title)s

%(repr)s %(items)s
objreturncCs t|S)z1Creates a debug repr of an object as HTML string.)DebugReprGeneratorrepr)rr TC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-1tps7o9u\werkzeug\debug\repr.py debug_repr"sr cCs<t}|tkr"|tdj}n ||}tj|dS)zdPrint the object details to stdout._write (for the interactive console of the web debugger. N) rmissing dump_localssys _getframef_locals dump_objectstdout_write)rgenrvr r r dump's  rc@s8eZdZdZedddZd ejejddddZ dS) _HelperzDisplays an HTML version of the normal help, for the interactive debugger only because it requires a patched sys.stdout. rcCsdS)Nz(Type help(object) for help about object.r selfr r r __repr__8sz_Helper.__repr__N)topicrcCs|dkr tjd|ddSddl}||tj}t|trR|dd}t |}t |dkr|d}d |dd}n d}|d}tjt ||d dS) Nzrzutf-8ignorer z ZHelp)titletext)rrrpydochelpreset isinstancebytesdecode _paragraph_resplitlenjoin HELP_HTML)rrr#rZ paragraphsr!r"r r r __call__;s      z_Helper.__call__)N) __name__ __module__ __qualname____doc__strrtOptionalAnyr.r r r r r3sr.)innerrbasercCstt|tr*|D]}t||kr|Sqnt||kr:|Sd}|jjdkrZd|jjd}|t|jd|dS)N) __builtin__ exceptionszz.())r&tupletype __class__r0r/)r7rr8moduler r r _add_subclass_infoRs     rBr)leftrightr8limitrcs$dtjttdfdd }|S)Nr)rr recursivercs|rtd|Sg}d}t|D]<\}}|rB|d|krX|dd}|||q,|rx|d|td||S)Nz...F, Trr9)rB enumerateappendr r,)rrrGbufhave_extended_sectionidxitemr8rDrFrEr r proxyds    z#_sequence_repr_maker..proxy)r4Iterableboolr3)rDrEr8rFrQr rPr _sequence_repr_makeras rTc@seZdZddddZeddeZeddeZed d e Z ed d e Z ed d e Zejed ddZd)ejeefeedddZd*ejejedfejeefejejeefeffeeedddZejejejeejejefed ddZejeedddZ edddZ!e"ed dd Z#e"ed d!d"Z$ejeejfed#d$d%Z%d+ej&ej'eefeejeed&d'd(Z(dS),rNrcCs g|_dS)N)_stackrr r r __init__yszDebugReprGenerator.__init__[]r<r=zset([z])z frozenset([z/collections.deque([rcCs.t|j}t|dd}d|}d|dS)Nzunicode-escaper rz&re.compile(z))r patterncodecsr()rrrZr r r regex_reprs  zDebugReprGenerator.regex_reprF)rrFrcCsdg}t|}t||dkrJ|t|d|dt||ddfn|t||dd|}|ddks|ddkr|d dkrt||ttfS|S) NzrIrr9rz'"br ) r r+extendrrKr,rBr'r3)rrrFrLrYoutr r r string_reprs    $zDebugReprGenerator.string_repr)drGrFrc Cs|rtd|tSdg}d}t|D]X\}\}}|r@|d||dkrZ|dd}|d||d ||d q&|r|d |d td ||tS)Nz{...}{FrHr rITz%z: zr}r9)rBdictrJitemsrKr r,) rrdrGrFrLrMrNkeyvaluer r r dict_reprs"      zDebugReprGenerator.dict_reprcCst|}dt|dS)Nzr)r r)rrrYr r r object_reprszDebugReprGenerator.object_repr)rrGrcCs|tkrdtdSt|tttfr0d|dSt|tsDt|trN||St|trb| |St|t rx| ||St|t r| ||St|tr|||St|tr|||St|tr|||St|tr|||S||S)Nzrz)helperr&intfloatcomplexr3r'rb RegexTyper\list list_reprr> tuple_reprsetset_repr frozensetfrozenset_reprrgrkr deque_reprrl)rrrGr r r dispatch_reprs*                 z DebugReprGenerator.dispatch_reprcCsLzdttdd}Wntk r6d}YnXdt|dS)Nr9r^?z*<broken repr (z )>)r,rrexc_info Exceptionrstrip)rinfor r r fallback_reprs  z DebugReprGenerator.fallback_reprcCsvd}|jD]}||kr d}q q |j|z8z|||WW&Stk r`|YWSXW5|jXdS)NFT)rUrKpoprzr}r)rrrGrOr r r r s  zDebugReprGenerator.reprc Csd}d}t|trRd}g}|D].\}}t|ts sz2DebugReprGenerator.dump_locals..zLocal variables in frame)rhr)rrdrhr rr r szDebugReprGenerator.dump_locals)rhr!r rcCsfg}|D]$\}}|dt|d|dq|s<|dtt|d|rN|nddd|dS) Nzz
z
zNothingz
r9
)r!r	rh)rKrOBJECT_DUMP_HTMLr,)rrhr!r	Z
html_itemsrirjr
r
rrs
z%DebugReprGenerator.render_object_dump)r])rc)N))r/r0r1rVrTrrrsr>rtrurvrwrxrryr4Patternr3r\Unionr'rnrbDictrSrkr5TypergCallablerlr6rzrrr	rrListTuplerr
r
r
rrxsD6"
)rC)#r2r[rertypingr4collectionsrhtmlr	tracebackrrrcompiler)r?rqr-rr3rrrrmrrrrBrnrrRrSrTrr
r
r
rs<