3 \Øã @s„dZdddgZddlZddlmZyddlmZWn ek rRddlmZYnXd d d„Z Gd d„dƒZ d 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 sBt|ƒtƒf}|ˆkrˆSˆj|ƒz ˆ|ƒ}Wdˆj|ƒX|S)N)ÚidrÚaddÚdiscard)ÚselfÚkeyÚresult)Ú fillvalueÚ repr_runningÚ user_function©ú/usr/lib64/python3.6/reprlib.pyÚwrappers   z.decorating_function..wrapperÚ __module__Ú__doc__Ú__name__Ú __qualname__Ú__annotations__)ÚsetÚgetattrrrrrr)rr)r)rrrÚdecorating_functions    z+recursive_repr..decorating_functionr)rrr)rrr s c@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||jƒS)N)Úrepr1r!)r Úxrrrr6sz Repr.reprcCsVt|ƒj}d|kr$|jƒ}dj|ƒ}t|d|ƒrFt|d|ƒ||ƒS|j||ƒSdS)Nú Ú_Úrepr_)ÚtyperÚsplitÚjoinÚhasattrrÚ repr_instance)r r.ÚlevelÚtypenameÚpartsrrrr-9s  z Repr.repr1Úc s€t|ƒ}|dkr|rd}nX|d‰|j‰‡‡fdd„t||ƒDƒ} ||krT| jdƒdj| ƒ}|dkrr|rr||}d|||fS)Nrz...écsg|]}ˆ|ˆƒ‘qSrr)Ú.0Úelem)Únewlevelr-rrú Jsz'Repr._repr_iterable..z, z%s%s%s)Úlenr-rÚappendr4) r r.r7ÚleftÚrightÚmaxiterÚtrailÚnÚsÚpiecesr)r>r-rÚ_repr_iterableCs    zRepr._repr_iterablecCs|j||dd|jdƒS)Nú(ú)ú,)rIr")r r.r7rrrÚ repr_tuplePszRepr.repr_tuplecCs|j||dd|jƒS)Nú[ú])rIr#)r r.r7rrrÚ repr_listSszRepr.repr_listcCs,|sd|jSd|j}|j|||d|jƒS)Nz array('%s')z array('%s', [z]))ÚtypecoderIr$)r r.r7ÚheaderrrrÚ repr_arrayVs  zRepr.repr_arraycCs$|sdSt|ƒ}|j||dd|jƒS)Nzset()ú{ú})Ú_possibly_sortedrIr&)r r.r7rrrÚrepr_set\sz Repr.repr_setcCs$|sdSt|ƒ}|j||dd|jƒS)Nz frozenset()z frozenset({z}))rVrIr')r r.r7rrrÚrepr_frozensetbs  zRepr.repr_frozensetcCs|j||dd|jƒS)Nzdeque([z]))rIr()r r.r7rrrÚ repr_dequeiszRepr.repr_dequec Csžt|ƒ}|dkrdS|dkr dS|d}|j}g}xBtt|ƒ|jƒD].}|||ƒ}||||ƒ} |jd|| fƒqDW||jkrŠ|jdƒdj|ƒ} d| fS) Nrz{}z{...}r;z%s: %sz...z, z{%s})r@r-rrVr%rAr4) r r.r7rFr>r-rHr ÚkeyreprÚvalreprrGrrrÚ repr_dictls    zRepr.repr_dictcCs˜tj|d|j…ƒ}t|ƒ|jkr”td|jddƒ}td|jd|ƒ}tj|d|…|t|ƒ|d…ƒ}|d|…d|t|ƒ|d…}|S)Nrééz...)Úbuiltinsrr)r@Úmax)r r.r7rGÚiÚjrrrÚrepr_str{s&$z Repr.repr_strcCshtj|ƒ}t|ƒ|jkrdtd|jddƒ}td|jd|ƒ}|d|…d|t|ƒ|d…}|S)Nrr]r^z...)r_rr@r*r`)r r.r7rGrarbrrrÚrepr_int„s  $z Repr.repr_intc Cs’ytj|ƒ}Wn$tk r2d|jjt|ƒfSXt|ƒ|jkrŽtd|jddƒ}td|jd|ƒ}|d|…d|t|ƒ|d…}|S)Nz<%s instance at %#x>rr]r^z...) r_rÚ ExceptionÚ __class__rrr@r+r`)r r.r7rGrarbrrrr6Œs$zRepr.repr_instanceN)r:)rrrr,rr-rIrMrPrSrWrXrYr\rcrdr6rrrrr's   c Cs&yt|ƒStk r t|ƒSXdS)N)ÚsortedreÚlist)r.rrrrVšsrV)r)rÚ__all__r_Ú itertoolsrÚ_threadrÚ ImportErrorZ _dummy_threadrrrVÚaReprrrrrrÚs   s