4V=jW$dZddlmZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z eZejdZeeZdZd Zd!dZefd"dZGddZeZd#dZ d$d%dZGdd ZdS)&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. ) annotationsN)deque)format_exception_only)escapez(?:\r\n|\r|\n){2,}zL

%(title)s

%(text)s
zQ

%(title)s

%(repr)s %(items)s
objobjectreturnstrcDt|S)z1Creates a debug repr of an object as HTML string.)DebugReprGeneratorrepr)rs AC:\PYTHON\_runtimes\venv\Lib\site-packages\werkzeug/debug/repr.py debug_reprr&s    $ $S ) ))Nonect}|tur-|tjdj}n||}tj|dS)zdPrint the object details to stdout._write (for the interactive console of the web debugger. N) r missing dump_localssys _getframef_locals dump_objectstdout_write)rgenrvs rdumpr+se   C g~~ __S]1--6 7 7 __S ! !Jbrc$eZdZdZd dZd d d ZdS) _HelperzDisplays an HTML version of the normal help, for the interactive debugger only because it requires a patched sys.stdout. r r cdS)Nz(Type help(object) for help about object.selfs r__repr__z_Helper.__repr__<s99rNtopic t.Any | Nonerc|%tjd|ddSddl}||tj}t |}t|dkr&|d}d |dd}n d}|d}tjt||dzdS)Nzrrz Help)titletext) rrrpydochelpreset _paragraph_resplitlenjoin HELP_HTML)r$r&r-r paragraphsr+r,s r__call__z_Helper.__call__?s = J  A$AAA B B B F  5 Z    "((,, z??Q  qME;;z!""~..DDEa=D )t&D&DDEEEEErr r N)r&r'r r)__name__ __module__ __qualname____doc__r%r6r"rrr r 7sR::::FFFFFFFrr innerbasetype | tuple[type, ...]ct|tr|D]}t||ur|cSnt||ur|Sd}|jjdvrd|jjd}|t|jd|dS)N) __builtin__ exceptionszz.()) isinstancetupletype __class__r:r9)r=rr>clsmodules r_add_subclass_inforLTs$  CCyyC    cd   F }'DDDK)AKKK 3d3ii( 3 35 3 3 33rleftrightrHlimitint>t.Callable[[DebugReprGenerator, t.Iterable[t.Any], bool], str]c d fd }|S) Nr$r rt.Iterable[t.Any] recursiveboolr r c|rtd |Sg}d}t|D]a\}}|r|d| kr|dd}|||b|r|d| td||S)Nz...F, Tr)rA)rL enumerateappendr r3) r$rrUbufhave_extended_sectionidxitemr>rNrPrOs rproxyz#_sequence_repr_maker..proxyds  F%&9&9%&9&93EE Ef %"3 ( (IC ! 4   e|| 4555(,% JJtyy ' ' ' '  " JJy ! ! ! 5!"''#,,T:::r)r$r rrTrUrVr r r")rNrOr>rPr`s```` r_sequence_repr_makerraas:;;;;;;;;;" LrceZdZd+dZeddeZeddeZedd e Z ed d e Z ed d e Zd,dZd-d.dZ d/d0dZd1dZd2dZd3dZd4d Zd4d!Zd5d#Z d6d7d*Zd$S)8r r rcg|_dSr8)_stackr#s r__init__zDebugReprGenerator.__init__ys #% r[]rDrEzset([z])z frozenset([z/collections.deque([rt.Pattern[t.AnyStr]r clt|j}tj|dd}d|}d|dS)Nzunicode-escapeignorerz&re.compile(z))r patterncodecsdecode)r$rrls r regex_reprzDebugReprGenerator.regex_reprsAs{##-)98DDg--IIIIIrF str | bytesrPrQc dg}t|}t||z dkrD|t|d|dt||ddfn"|t||dd|}|ddvs|ddkr'|d dvrt ||ttfS|S) NzrYr)rArz'"br) r r2extendrr[r3rLbytesr )r$rrPr\rkouts r string_reprzDebugReprGenerator.string_reprs&' II q66E>A   JJ1VeV9%%-1UVV9%%      JJvayy ! ! ! 9ggcll Q45==QqTS[[QqTU]]%c3 == = rd7dict[int, None] | dict[str, int] | dict[str | int, int]rUrVc ,|rtd|tSdg}d}t|D]\}\}}|r|d||dz kr|dd}|d||d ||d |r|d |d td ||tS)Nz{...}{FrXrrYTz%z: zr)}rA)rLdictrZitemsr[r r3) r$rzrUrPr\r]r^keyvalues r dict_reprzDebugReprGenerator.dict_reprs6  8%gq$77 7e %!*17799!5!5   C#u ! 4   eai 4555(,% JJI #II(, %(8(8III     ! " JJy ! ! ! 3!"''#,,4888rt.AnycFt|}dt|dS)Nzr))r r)r$rrks r object_reprzDebugReprGenerator.object_reprs$ II9vayy9999rcz|tur dtdSt|tttfrd|dSt|t st|t r||St|tr| |St|tr| ||St|tr| ||St|tr|||St|t r|||St|t$r|||St|t(r|||S||S)Nzr)z)helperrFrQfloatcomplexr rvrx RegexTyperolist list_reprrG tuple_reprsetset_repr frozensetfrozenset_reprrrr deque_reprr)r$rrUs r dispatch_reprz DebugReprGenerator.dispatch_reprs &==:::: : cC0 1 1 :93999 9 c3   ):c5#9#9 )##C(( ( c9 % % (??3'' ' c4  2>>#y11 1 c5 ! ! 3??3 22 2 c3   1==i00 0 c9 % % 7&&sI66 6 c4  2>>#y11 1 c5 ! ! 3??3 22 2$$$rc dttjdd}n#t$rd}YnwxYwdt |dS)NrArs?z*<broken repr (z )>)r3rrexc_info Exceptionrstrip)r$infos r fallback_reprz DebugReprGenerator.fallback_reprs 770#,..!2DEFFDD   DDD  C &tzz|| 4 4 C C C s58 AArcvd}|jD] }||urd}n |j| ||||jS#t$r0|cY|jSwxYw#|jwxYw)NFT)rdr[rpoprr)r$rrUr_s rr zDebugReprGenerator.reprs K  Ds{{  3  ,))#y99 KOO     , , ,))++++ KOO     , KOO    s#A B>BBBB8c `d}d}t|trad}g}|D]H\}}t|tsd}n+||||fI|tg}||}t |D]K} |||t||f<#t$rYHwxYwd}|dt |ddz }| |||S)Nz Contents ofz Details for r) rFrrr r[r dirgetattrrrr%render_object_dump)r$rr rr+rrs rrzDebugReprGenerator.dump_objectsM.2 c4  6!EE!iikk 6 6 U!#s++ EE c499U#3#345555 =E99S>>D3xx  LL#tyyc1B1B'C'C!DEEEE D!E 1V__S))!B$/111&&ueT:::s&8C C,+C,dict[str, t.Any]cpfd|D}|dS)NcDg|]\}}||fSr")r ).0rrr$s r z2DebugReprGenerator.dump_locals.. s.EEEZS%#tyy''(EEErzLocal variables in frame)rr)r$rzrs` rrzDebugReprGenerator.dump_locals s;EEEE17799EEE&&u.HIIIrNrlist[tuple[str, str]]r+r str | Nonecg}|D].\}}|dt|d|d/|s|dtt|d|r|nddd|dzS) Nzz
z
zNothingz
rA
)r+r
r)r[rOBJECT_DUMP_HTMLr3)r$rr+r

html_itemsrrs       rrz%DebugReprGenerator.render_object_dumps
	Y	YJCWWW%WWWXXXX	:8999E]]Ct';ttCCCYYz**#
#

	
r)r	r)rrhr	r
)rp)rrqrPrQr	r
)ry)rzr{rUrVrPrQr	r
)rrr	r
)rrrUrVr	r
r7rrr	r
)rzrr	r
r8)rrr+r
r
rr	r
)r9r:r;rerarrrGrrrrrrrrorxrrrrr
rrrr"rrrrxs~&&&&%$S#t44I%%c366J##GT377H))-yIIN%%94JJJJJ>	999992::::%%%%.







;;;;0JJJJ
LP






rrr)rrr	r)r=r
rrr>r?r	r
)rM)
rNr
rOr
r>rHrPrQr	rR)r<
__future__rrmrertypingtcollectionsr	tracebackr
markupsaferrrcompiler0rHrr4rrrr rrLrarr"rrrs#"""""



				



++++++
&((
011
D	
	****
					FFFFFFFF4

4
4
4
456.b
b
b
b
b
b
b
b
b
b
r