©ÕYfØã @s®dZdddgZddlZddlmZyddlmZWn"ek riddlmZYnXdd 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_identz...cs‡fdd†}|S)zGDecorator to make a repr function return fillvalue for a recursive callcs‚tƒ‰‡‡‡fdd†}tˆdƒ|_tˆdƒ|_tˆdƒ|_tˆdƒ|_tˆdiƒ|_|S)Nc sWt|ƒtƒf}|ˆkr%ˆSˆj|ƒzˆ|ƒ}Wdˆj|ƒX|S)N)ÚidrÚaddÚdiscard)ÚselfÚkeyÚresult)Ú fillvalueÚ repr_runningÚ user_function©ú,/opt/alt/python35/lib64/python3.5/reprlib.pyÚwrappers  z.decorating_function..wrapperÚ __module__Ú__doc__Ú__name__Ú __qualname__Ú__annotations__)ÚsetÚgetattrrrrrr)rr)r )rrrÚdecorating_functions  z+recursive_repr..decorating_functionr)r rr)r rr sc@s»eZdZdd„Zdd„Zdd„Zddd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)rcCsgd|_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__)s          z Repr.__init__cCs|j||jƒS)N)Úrepr1r )r Úxrrrr6sz Repr.reprcCswt|ƒj}d|kr6|jƒ}dj|ƒ}t|d|ƒrct|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'|r'd}n||d‰|j‰‡‡fdd†t||ƒDƒ} ||krx| jdƒdj| ƒ}|dkr£|r£||}d|||fS)Nrz...écsg|]}ˆ|ˆƒ‘qSrr)Ú.0Úelem)Únewlevelr,rrú Js z'Repr._repr_iterable..z, z%s%s%s)Úlenr,rÚappendr3) r r-r6ÚleftÚrightÚmaxiterÚtrailÚnÚsÚpiecesr)r=r,rÚ_repr_iterableCs    %  zRepr._repr_iterablecCs|j||dd|jdƒS)Nú(ú)ú,)rHr!)r r-r6rrrÚ repr_tuplePszRepr.repr_tuplecCs|j||dd|jƒS)Nú[ú])rHr")r r-r6rrrÚ repr_listSszRepr.repr_listcCs:|sd|jSd|j}|j|||d|jƒS)Nz array('%s')z array('%s', [z]))ÚtypecoderHr#)r r-r6ÚheaderrrrÚ repr_arrayVs  zRepr.repr_arraycCs2|s dSt|ƒ}|j||dd|jƒS)Nzset()ú{ú})Ú_possibly_sortedrHr%)r r-r6rrrÚrepr_set\s z Repr.repr_setcCs2|s dSt|ƒ}|j||dd|jƒS)Nz frozenset()z frozenset({z}))rUrHr&)r r-r6rrrÚrepr_frozensetbs  zRepr.repr_frozensetcCs|j||dd|jƒS)Nzdeque([z]))rHr')r r-r6rrrÚ repr_dequeiszRepr.repr_dequec Cs×t|ƒ}|dkrdS|dkr,dS|d}|j}g}xYtt|ƒ|jƒD]?}|||ƒ}||||ƒ} |jd|| fƒq^W||jkr½|jdƒdj|ƒ} d| fS) Nrz{}z{...}r:z%s: %sz...z, z{%s})r?r,rrUr$r@r3) r r-r6rEr=r,rGr ÚkeyreprÚvalreprrFrrrÚ 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-r6rFÚiÚjrrrÚrepr_str{s1,z Repr.repr_strcCsˆtj|ƒ}t|ƒ|jkr„td|jddƒ}td|jd|ƒ}|d|…d|t|ƒ|d…}|S)Nrr\r]z...)r^rr?r)r_)r r-r6rFr`rarrrÚrepr_int„s ,z Repr.repr_intc Cs»ytj|ƒ}Wn,tk rAd|jjt|ƒfSYnXt|ƒ|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-r6rFr`rarrrr5Œs ,zRepr.repr_instanceN)rrrr+rr,rHrLrOrRrVrWrXr[rbrcr5rrrrr's           c Cs1yt|ƒSWntk r,t|ƒSYnXdS)N)ÚsortedrdÚlist)r-rrrrUšs rU)rÚ__all__r^Ú itertoolsrÚ_threadrÚ ImportErrorZ _dummy_threadrrrUÚaReprrrrrrÚs  s