a ê|_“ã@s\dZgd¢ZddlZddlmZddlmZd dd„ZGd d „d ƒZd d „Z eƒZ e j Z dS)zGRedo the builtin repr() (representation) but with limits on most sizes.)ÚReprÚreprÚrecursive_repréN)Úislice)Ú get_identú...cs‡fdd„}|S)zGDecorator to make a repr function return fillvalue for a recursive callcsXtƒ‰‡‡‡fdd„}tˆdƒ|_tˆdƒ|_tˆdƒ|_tˆdƒ|_tˆdiƒ|_|S)Nc sLt|ƒtƒf}|ˆvrˆSˆ |¡zˆ|ƒ}Wˆ |¡n ˆ |¡0|S©N)ÚidrÚaddÚdiscard)ÚselfÚkeyÚresult)Ú fillvalueÚ repr_runningÚ user_function©ú#/usr/local/lib/python3.9/reprlib.pyÚwrappers  z.decorating_function..wrapperÚ __module__Ú__doc__Ú__name__Ú __qualname__Ú__annotations__)ÚsetÚgetattrrrrrr)rr©r)rrrÚdecorating_function s    z+recursive_repr..decorating_functionr)rrrrrr s rc@s~eZdZdd„Zdd„Zdd„Zddd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS) rcCsFd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nééééé() ÚmaxlevelÚmaxtupleÚmaxlistÚmaxarrayÚmaxdictÚmaxsetÚ maxfrozensetÚmaxdequeÚ maxstringÚmaxlongÚmaxother)r rrrÚ__init__&sz Repr.__init__cCs| ||j¡Sr)Úrepr1r#)r Úxrrrr3sz Repr.reprcCsVt|ƒj}d|vr$| ¡}d |¡}t|d|ƒrFt|d|ƒ||ƒS| ||¡SdS)Nú Ú_Zrepr_)ÚtyperÚsplitÚjoinÚhasattrrÚ repr_instance)r r0ÚlevelÚtypenameÚpartsrrrr/6s  z Repr.repr1Úc s€t|ƒ}|dkr|rd}nX|d‰|j‰‡‡fdd„t||ƒDƒ} ||krT|  d¡d | ¡}|dkrr|rr||}d|||fS)Nrrécsg|]}ˆ|ˆƒ‘qSrr)Ú.0Úelem©Únewlevelr/rrÚ Góz'Repr._repr_iterable..ú, z%s%s%s)Úlenr/rÚappendr5) r r0r8ÚleftÚrightZmaxiterZtrailÚnÚsÚpiecesrr?rÚ_repr_iterable@s  zRepr._repr_iterablecCs| ||dd|jd¡S)Nú(ú)ú,)rKr$©r r0r8rrrÚ repr_tupleMszRepr.repr_tuplecCs| ||dd|j¡S)Nú[ú])rKr%rOrrrÚ repr_listPszRepr.repr_listcCs,|sd|jSd|j}| |||d|j¡S)Nz array('%s')z array('%s', [ú]))ZtypecoderKr&)r r0r8ZheaderrrrÚ repr_arraySs  zRepr.repr_arraycCs$|sdSt|ƒ}| ||dd|j¡S)Nzset()ú{ú})Ú_possibly_sortedrKr(rOrrrÚrepr_setYsz Repr.repr_setcCs$|sdSt|ƒ}| ||dd|j¡S)Nz frozenset()z frozenset({z}))rXrKr)rOrrrÚrepr_frozenset_s  ÿzRepr.repr_frozensetcCs| ||dd|j¡S)Nzdeque([rT)rKr*rOrrrÚ repr_dequefszRepr.repr_dequec Csšt|ƒ}|dkrdS|dkr dS|d}|j}g}tt|ƒ|jƒD].}|||ƒ}||||ƒ} | d|| f¡qB||jkr†| d¡d |¡} d| fS) Nrz{}z{...}r<z%s: %srrCz{%s})rDr/rrXr'rEr5) r r0r8rHr@r/rJr ZkeyreprZvalreprrIrrrÚ repr_dictis    zRepr.repr_dictcCs˜t |d|j…¡}t|ƒ|jkr”td|jddƒ}td|jd|ƒ}t |d|…|t|ƒ|d…¡}|d|…d|t|ƒ|d…}|S©Nréér)Úbuiltinsrr+rDÚmax©r r0r8rIÚiÚjrrrÚrepr_strxs&$z Repr.repr_strcCsht |¡}t|ƒ|jkrdtd|jddƒ}td|jd|ƒ}|d|…d|t|ƒ|d…}|Sr])r`rrDr,rarbrrrÚrepr_ints  $z Repr.repr_intcCs”zt |¡}Wn&ty4d|jjt|ƒfYS0t|ƒ|jkrtd|jddƒ}td|jd|ƒ}|d|…d|t|ƒ|d…}|S)Nz<%s instance at %#x>rr^r_r) r`rÚ ExceptionÚ __class__rr rDr-rarbrrrr7‰s $zRepr.repr_instanceN)r;)rrrr.rr/rKrPrSrUrYrZr[r\rerfr7rrrrr$s   rcCs*z t|ƒWSty$t|ƒYS0dSr)ÚsortedrgÚlist)r0rrrrX—s  rX)r) rÚ__all__r`Ú itertoolsrÚ_threadrrrrXZaReprrrrrrÚs   s