PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  lY|Q @sadZddlZddlZddlZddlZddlm Z dddddd gZ dd d dd d ddZ d d dd d ddZ ddZddZddZGdddZddZGdd d ZddZeeeeeeeeedhZddZdddZ ddZ!e"d kr]e dS)!a/Support to pretty-print lists, tuples, & dictionaries recursively. Very simple, but useful, especially in debugging data structures. Classes ------- PrettyPrinter() Handle pretty-printing operations onto a stream using a configured set of formatting parameters. Functions --------- pformat() Format a Python object into a pretty-printed representation. pprint() Pretty-print a Python object to a stream [default is sys.stdout]. saferepr() Generate a 'standard' repr()-like value, but protect against recursive data structures. N)StringIOpprintpformat isreadable isrecursivesaferepr PrettyPrinterPcompactFc Cs8td|d|d|d|d|}|j|dS)zAPretty-print a Python object to a stream [default is sys.stdout].streamindentwidthdepthr N)rr)objectr r rrr Zprinterr%/opt/python35/lib/python3.5/pprint.pyr/s c Cs(td|d|d|d|j|S)z= 0Nzdepth must be > 0zwidth must be != 0) int ValueError_depth_indent_per_level_width_stream_sysstdoutbool_compact)rr rrr r rrrrcs            zPrettyPrinter.__init__cCs3|j||jddid|jjddS)Nr )_formatr+write)rrrrrrszPrettyPrinter.pprintcCs/t}|j||ddid|jS)Nr) _StringIOr1getvalue)rrsiorrrrs zPrettyPrinter.pformatcCs|j|idddS)Nrr)format)rrrrrrszPrettyPrinter.isrecursivecCs,|j|idd\}}}|o+| S)Nr)r6)rrsreadable recursiverrrrs!zPrettyPrinter.isreadablec Cs-t|}||krA|jt|d|_d|_dS|j|||}|j||} t|| kr|jj t |j d} | dk rd||<| |||||||d||=dSt |t rd||<|j||||||d||=dS|j|dS)NTFr )rr2 _recursion _recursive _readable_reprr*len _dispatchgetr__repr__ isinstancedict _pprint_dict) rrr r allowancecontextlevelobjidrep max_widthprrrr1s,        zPrettyPrinter._formatc Cs|j}|d|jdkr7||jddt|}|rt|jdt} |j| |||d|||ddS)N{r  key})r2r)r>sorteditemsr%_format_dict_items) rrr r rErFrGr2lengthrQrrrrDs    zPrettyPrinter._pprint_dictcCst|s#|jt|dS|j}|j|jd|jt|j||t|jd|d|||jddS)N(r ))r>r2repr __class__rr1listrQ)rrr r rErFrGclsrrr_pprint_ordered_dicts   z"PrettyPrinter._pprint_ordered_dictcCs>|jd|j||||d|||jddS)N[r ])r2 _format_items)rrr r rErFrGrrr _pprint_lists  zPrettyPrinter._pprint_listcCsb|jdt|dkr%dnd}|j||||t||||j|dS)NrTr z,)rU)r2r>r])rrr r rErFrGendcharrrr _pprint_tuples   zPrettyPrinter._pprint_tuplec Cst|s#|jt|dS|j}|tkrN|jdd}n1|j|jdd}|t|jd7}t|dt}|j||||t||||j|dS)NrLrOz({z})r rN) r>r2rVrWsetrrPrr]) rrr r rErFrGtypr_rrr _pprint_sets      zPrettyPrinter._pprint_setcCsj|j}t|s)|t|dSg}|jd} |dkr^|d7}|d7}|j|} } xct| D]U\} } t| }| t| dkr| |8} t|| kr|j|q|tjd| }|st |d  st |j | }d}xt|D]\}}||}|t|dkrt| t| dkrt||8}tt||kr|r|jt||}q(|}q(W|r||jt|q|Wt|dkr||dS|dkr |dxBt|D]4\} }| dkrB|dd|||qW|dkrf|d dS) NTr z\S*\s*rTrr0rMrU) r2r>rV splitlinesr* enumerateappendrefindallAssertionErrorpop)rrr r rErFrGr2chunkslinesZ max_width1rJilinerIpartsZ max_width2currentjpart candidaterrr _pprint_strsX          ,        zPrettyPrinter._pprint_strc Cs|j}t|dkr/|t|dS|dk}|r_|d7}|d7}|dd} xIt||j||D].} || || | sdd|} qW|r|ddS)Nr rTrdr0rMrU)r2r>rV_wrap_bytes_reprr*) rrr r rErFrGr2ZparensdelimrIrrr _pprint_bytes's"        zPrettyPrinter._pprint_bytescCsO|j}|d|jt|||d|d||d|ddS)Nz bytearray( r rU)r2rzbytes)rrr r rErFrGr2rrr_pprint_bytearray<s   zPrettyPrinter._pprint_bytearraycCsH|jd|j|j||d|d|||jddS)Nz mappingproxy( r rU)r2r1copy)rrr r rErFrGrrr_pprint_mappingproxyEs   z"PrettyPrinter._pprint_mappingproxycCs|j}||j7}dd|}t|d} xt|D]\} \} } | | k} |j| ||}|||d|j| ||t|d| r|nd||| sA||qAWdS)Nz, rMr z: r)r2r)r>rgr=r1)rrQr r rErFrGr2delimnlZ last_indexrorNentlastrIrrrrRMs      z PrettyPrinter._format_dict_itemscCs|j}||j7}|jdkr:||jdddd|}d} |j|d} } t|} yt| } Wntk rdSYnXd}x|s| }yt| } Wn,tk rd}| |8} | |8} YnX|jrk|j|||}t|d}| |kr8| } | r8|} | |krk| |8} || d} ||q|| |} |j ||||r|nd||qWdS) Nr rMz, rdFTrz, ) r2r)r*iternext StopIterationr/r=r>r1)rrQr r rErFrGr2rryrrJitZnext_entrrrIwrrrr]^sN               zPrettyPrinter._format_itemscCsL|j||j|j|\}}}|s9d|_|rHd|_|S)NFT)r6rr(r<r;)rrrFrGrVr8r9rrrr=s  zPrettyPrinter._reprcCst||||S)zFormat object for a specific context, returning a string and flags indicating whether the representation is 'readable' and whether the object represents a recursive construct. )r)rrrF maxlevelsrGrrrr6szPrettyPrinter.formatc Cst|s#|jt|dS|j|j||}|j}|t|jd7}|jd|j|d|f|j||||d|||jddS)Nr z %s(%s, %srMrU)r>r2rVr=default_factoryrWrrD) rrr r rErFrGZrdfrYrrr_pprint_default_dicts  ! z"PrettyPrinter._pprint_default_dictc Cst|s#|jt|dS|j}|j|jd|jdkrg|j|jdd|j}|j|||t|jd|d|||jddS)Nz({r rMrz}))r>r2rVrWrr) most_commonrR) rrr r rErFrGrYrQrrr_pprint_counters     zPrettyPrinter._pprint_counterc Cst|js&|jt|dS|j}|j|jd|t|jd7}xt|jD]\}} |t|jdkr|j| |||d|||jdqj|j| ||d|||jdd|qjWdS)NrTr rUz, rM)r>mapsr2rVrWrrgr1) rrr r rErFrGrYromrrr_pprint_chain_maps  zPrettyPrinter._pprint_chain_mapc Cst|s#|jt|dS|j}|j|jd|t|jd7}|jd|jdkr|j||||d|||jdnO|j|||d|||j|j||}|jdd||fdS)NrTr r[rz])z], %smaxlen=%s)rM)r>r2rVrWrmaxlenr]r=) rrr r rErFrGrYZrmlrrr _pprint_deques     zPrettyPrinter._pprint_dequecCs'|j|j|||||ddS)Nr )r1data)rrr r rErFrGrrr_pprint_user_dictszPrettyPrinter._pprint_user_dictcCs'|j|j|||||ddS)Nr )r1r)rrr r rErFrGrrr_pprint_user_listszPrettyPrinter._pprint_user_listcCs'|j|j|||||ddS)Nr )r1r)rrr r rErFrGrrr_pprint_user_stringsz!PrettyPrinter._pprint_user_string)2rr r!rrrrrr1r?rDrCrArZ _collections OrderedDictr^rXr`tuplercra frozensetrvrrzr|r} bytearrayr_typesMappingProxyTyperRr]r=r6r defaultdictrCounterrChainMaprdequerUserDictrUserListr UserStringrrrrrbsZ &               1        )        cCsUt|}|tkr+t|ddfSt|dd}t|tr|tjkr|sedSt|}|r||krdd||kfS||krt|ddfSd|| startswith)rrFrrGrbrrHr8r9Z componentsrhrrQkvZkreprZ kreadableZkrecurZvreprZ vreadableZvrecurr6oZoreprZ oreadableZorecurrIrrrrs|                    rcCsdt|jt|fS)Nz)rrr)rrrrr:1sr:cCsddl}|dkrCddddgddd d ifgd }t}|j}t|idd|j}|j||j}td ||td ||dS)Nrstringr rrwiz _safe_repr:zpformat:)r r)timerrrprint)rrrKt1Zt2Zt3rrr _perfcheck6s  +     rccsd}t|dd}xtdt|dD]r}|||d}||}||krm||8}tt||kr|rt|V|}q3|}q3W|rt|VdS)Nrwr)r>rangerV)rrrErrrrortrurrrrxCs      rx__main__)#r" collectionsrrisysr,typesriorr3__all__rrrrrrr%rrrrr|rr&floatcomplexr.rrr:rrxrrrrr#s2          D