U e5dS @sddlZddlZddlZddlZddlmZ ddddddd gZ d$d d dddZ d%d d dddZ d ddd Z ddZddZddZGdddZddZGdddZddZeeeeeeeeedhZddZd&dd Z d!d"Z!e"d#kre dS)'N)StringIOpprintpformat isreadable isrecursivesaferepr PrettyPrinterppPFTcompact sort_dictscCs"t||||||d}||dS)N)streamindentwidthdepthr r)rr)objectrrrrr rZprinterr/usr/lib64/python3.8/pprint.pyr/scCst|||||d|S)N)rrrr r)rr)rrrrr rrrrr7s )rcOst|f|d|i|dS)Nr)r)rrargskwargsrrrr =scCst|iddddS)NrT _safe_reprrrrrrAscCst|iddddS)NrTr rrrrrrEscCst|iddddS)NrTrrrrrrIsc@s"eZdZdgZddZddZdS) _safe_keyobjcCs ||_dSN)r)selfrrrr__init__Ysz_safe_key.__init__cCsXz|j|jkWStk rRtt|jt|jftt|jt|jfkYSXdSr)r TypeErrorstrtypeid)rotherrrr__lt__\s z_safe_key.__lt__N)__name__ __module__ __qualname__ __slots__r r&rrrrrMs rcCst|dt|dfS)Nrr )r)trrr _safe_tuplecsr,c@seZdZd;dddddZd d Zd d Zd dZddZddZiZ ddZ e e e j <ddZ e e ejj <ddZee ej <ddZee ej <ddZee ej <ee ej <ddZee ej <dd Zee ej <d!d"Zee ej <d#d$Zee ejj <d%d&Z d'd(Z!d)d*Z"d+d,Z#d-d.Z$e$e ej%j <d/d0Z&e&e ej'j <d1d2Z(e(e ej)j <d3d4Z*e*e ej+j <d5d6Z,e,e ej-j <d7d8Z.e.e ej/j <d9d:Z0e0e ej1j <dS)= 0zdepth must be > 0zwidth must be != 0) int ValueError_depth_indent_per_level_width_stream_sysstdoutbool_compact _sort_dicts)rrrrrr rrrrr hs  zPrettyPrinter.__init__cCs&|||jddid|jddS)Nr )_formatr2writerrrrrrszPrettyPrinter.pprintcCs"t}|||ddid|SNr) _StringIOr9getvalue)rrZsiorrrrszPrettyPrinter.pformatcCs||idddS)Nrrformatr;rrrrszPrettyPrinter.isrecursivecCs ||idd\}}}|o| Sr<r?)rrsreadable recursiverrrrszPrettyPrinter.isreadablec Cst|}||kr.|t|d|_d|_dS||||}|j||} t|| kr|j t |j d} | dk rd||<| |||||||d||=dSt |t rd||<|||||||d||=dS||dS)NTFr )r$r: _recursion _recursive _readable_reprr1len _dispatchgetr#__repr__ isinstancedict _pprint_dict) rrrr allowancecontextlevelobjidrep max_widthprrrr9s0   zPrettyPrinter._formatc Csz|j}|d|jdkr*||jddt|}|rn|jrNt|td} n|} || |||d|||ddS)N{r  key})r:r0rHr7sorteditemsr,_format_dict_items) rrrrrOrPrQr:Zlengthr\rrrrNs zPrettyPrinter._pprint_dictcCslt|s|t|dS|j}||jd|t|||t|jd|d|||ddS)N(r ))rHr:repr __class__r'r9listr\)rrrrrOrPrQclsrrr_pprint_ordered_dictsz"PrettyPrinter._pprint_ordered_dictcCs0|d|||||d|||ddS)N[r ])r: _format_itemsrrrrrOrPrQrrr _pprint_lists  zPrettyPrinter._pprint_listcCsH|dt|dkrdnd}|||||t|||||dS)Nr^r z,)r_)r:rHrg)rrrrrOrPrQendcharrrr _pprint_tuples zPrettyPrinter._pprint_tuplec Cst|s|t|dS|j}|tkr8|dd}n&||jdd}|t|jd7}t|td}|||||t|||||dS)NrVrZ({})r rX) rHr:r`rasetr'r[rrg) rrrrrOrPrQtyprjrrr _pprint_sets   zPrettyPrinter._pprint_setcCs|j}t|s|t|dSg}|d} |dkrD|d7}|d7}|j|} } t| D]\} } t| }| t| dkr| |8} t|| kr||qZtd| }| | }d}t|D]h\}}||}|t|dkr| t| dkr||8}tt||kr"|r|t||}q|}q|rZ|t|qZt|dkrV||dS|dkrh|dt|D],\} }| dkr|dd|||qp|dkr|d dS) NTr z\S*\s*r^rr8rWr_) r:rHr` splitlinesr1 enumerateappendrefindallpop)rrrrrOrPrQr:ZchunkslinesZ max_width1rTilinerSpartsZ max_width2currentjpart candidaterrr _pprint_strsT          zPrettyPrinter._pprint_strc Cs|j}t|dkr"|t|dS|dk}|rF|d7}|d7}|dd} t||j||D]$} || || | s\dd|} q\|r|ddS)Nr r^rqr8rWr_)r:rHr`_wrap_bytes_reprr1) rrrrrOrPrQr:ZparensdelimrSrrr _pprint_bytes3s"  zPrettyPrinter._pprint_bytesc Cs>|j}|d|t|||d|d||d|ddS)Nz bytearray( r r_)r:rbytes)rrrrrOrPrQr:rrr_pprint_bytearrayHszPrettyPrinter._pprint_bytearraycCs8|d||||d|d|||ddS)Nz mappingproxy( r r_)r:r9copyrhrrr_pprint_mappingproxyQs  z"PrettyPrinter._pprint_mappingproxyc Cs|j}||j7}dd|}t|d} t|D]f\} \} } | | k} || ||}|||d|| ||t|d| r|nd||| s0||q0dS)N, rWr z: r)r:r0rHrsrGr9)rr\rrrOrPrQr:delimnlZ last_indexryrYentlastrSrrrr]Ys     z PrettyPrinter._format_dict_itemscCsL|j}||j7}|jdkr,||jdddd|}d} |j|d} } t|} z t| } Wntk rxYdSXd}|sH| }z t| } Wn(tk rd}| |8} | |8} YnX|jr||||}t|d}| |kr| } | r|} | |kr| |8} || d} ||q~|| |} | ||||r<|nd||q~dS) Nr rWrrqFTr, ) r:r0r1iternext StopIterationr6rGrHr9)rr\rrrOrPrQr:rrrrTitZnext_entrrrSwrrrrgjsR         zPrettyPrinter._format_itemscCs4||||j|\}}}|s&d|_|r0d|_|S)NFT)r@rr/rFrE)rrrPrQr`rBrCrrrrGs  zPrettyPrinter._reprcCst|||||jSr)rr7)rrrP maxlevelsrQrrrr@szPrettyPrinter.formatc Cst|s|t|dS||j||}|j}|t|jd7}|d|j|d|f|||||d|||ddS)Nr z %s(%s, %srWr_)rHr:r`rGdefault_factoryrar'rN) rrrrrOrPrQZrdfrcrrr_pprint_default_dictsz"PrettyPrinter._pprint_default_dictc Cst|s|t|dS|j}||jd|jdkrN||jdd|}||||t|jd|d|||ddS)Nrlr rWrrm)rHr:r`rar'r0 most_commonr]) rrrrrOrPrQrcr\rrr_pprint_counters zPrettyPrinter._pprint_counterc Cst|js|t|dS|j}||jd|t|jd7}t|jD]d\}} |t|jdkr|| |||d|||dqN|| ||d|||dd|qNdS)Nr^r r_rrW)rHmapsr:r`rar'rsr9) rrrrrOrPrQrcrymrrr_pprint_chain_maps  zPrettyPrinter._pprint_chain_mapc Cst|s|t|dS|j}||jd|t|jd7}|d|jdkrz|||||d|||dn:||||d||||j||}|dd||fdS)Nr^r rerz])z], %smaxlen=%s)rW)rHr:r`rar'maxlenrgrG) rrrrrOrPrQrcZrmlrrr _pprint_deques&    zPrettyPrinter._pprint_dequec Cs||j|||||ddSNr r9datarhrrr_pprint_user_dictszPrettyPrinter._pprint_user_dictc Cs||j|||||ddSrrrhrrr_pprint_user_listszPrettyPrinter._pprint_user_listc Cs||j|||||ddSrrrhrrr_pprint_user_stringsz!PrettyPrinter._pprint_user_string)r r NN)2r'r(r)r rrrrr9rIrNrMrKrd _collections OrderedDictrirbrktuplerprn frozensetrr"rrr bytearrayr_typesMappingProxyTyper]rgrGr@r defaultdictrCounterrChainMaprdequerUserDictrUserListr UserStringrrrrrgs^ +      1    )       cCst|}|tkrt|ddfSt|dd}t|trD|tjkrD|sJdSt|}|rl||krldd||kfS||krt|ddfSd||<d}d} g} | j } |d7}|rt | t d} n| } | D]b\} }t | ||||\}}}t |||||\}}}| d||f|o|o|}|s$|rd} q||=d d | || fSt|tr\|tjkstt|trn|tjkrnt|tr|sd Sd }n"t|dkrd }n|sdSd}t|}|r||kr|dd||kfS||krt|ddfSd||<d}d} g} | j } |d7}|D]8}t |||||\}}}| ||sFd}|rd} q||=|d | || fSt|}||o|d dfS)NTFrK)z{}TFz{...}r rXz%s: %sz{%s}r)z[]TFz[%s]z(%s,))z()TFz(%s)z...<)r#_builtin_scalarsr`getattr issubclassrMrKr$rDrtr[r\r,rjoinrbrrH startswith)rrPrrQrrorrRrBrCZ componentsrtr\kvZkreprZ kreadableZkrecurZvreprZ vreadableZvrecurr@oZoreprZ oreadableZorecurrSrrrrs      rcCsdt|jt|fS)Nz)r#r'r$rrrrrD?srDcCsddl}|dkr,ddddgdddfgd }t}|}t|iddd |}|||}td ||td ||dS) Nrstring)r rr)iTz _safe_repr:zpformat:)timer perf_counterrrprint)rrrUt1t2Zt3rrr _perfcheckDs rccsd}t|dd}tdt|dD]T}|||d}||}||krP||8}tt||krt|rnt|V|}q$|}q$|rt|VdS)Nrr)rHranger`)rrrOr|rryr~rrrrrQs r__main__)Nr r N)r r N)N)# collectionsrrusysr3typesriorr=__all__rrr rrrrr,rrrr"rrr-floatcomplexr5r#rrDrrr'rrrr%sH    F