grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B ÅÒŒB¸€M–ã @sìdZddlZddlZddlZddlZddlm Z dddddd gZ d!d d œdd„Z d"d d œdd„Z dd„Zdd„Zdd„ZGdd„dƒZdd„ZGdd „d ƒZdd„ZeeeeeeeeedƒhƒZdd„Zd#dd„Z dd„Z!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)ÚStringIOÚpprintÚpformatÚ isreadableÚ isrecursiveÚsafereprÚ PrettyPrinterééPF)ÚcompactcCs t|||||d�}| |¡dS)zAPretty-print a Python object to a stream [default is sys.stdout].)ÚstreamÚindentÚwidthÚdepthr N)rr)Úobjectr r rrr Zprinter©rú+/opt/alt/python37/lib64/python3.7/pprint.pyr/scCst||||d� |¡S)z= 0Nzdepth must be > 0zwidth must be != 0) ÚintÚ ValueErrorÚ_depthÚ_indent_per_levelÚ_widthÚ_streamÚ_sysÚstdoutÚboolÚ_compact)rr rrr r rrrrcszPrettyPrinter.__init__cCs&| ||jddid¡|j d¡dS)NrÚ )Ú_formatr+Úwrite)rrrrrrŠszPrettyPrinter.pprintcCs"tƒ}| ||ddid¡| ¡S)Nr)Ú _StringIOr1Úgetvalue)rrZsiorrrrŽszPrettyPrinter.pformatcCs| |idd¡dS)Nrr)Úformat)rrrrrr“szPrettyPrinter.isrecursivecCs | |idd¡\}}}|o| S)Nr)r5)rrÚsÚreadableÚ recursiverrrr–szPrettyPrinter.isreadablec CsÞt|ƒ}||kr.| t|ƒ¡d|_d|_dS| |||¡}|j||} t|ƒ| krÐ|j  t |ƒj d¡} | dk rœd||<| |||||||dƒ||=dSt |t ƒrÐd||<| ||||||d¡||=dS| |¡dS)NTFr )rr2Ú _recursionÚ _recursiveÚ _readableÚ_reprr*ÚlenÚ _dispatchÚgetrÚ__repr__Ú isinstanceÚdictÚ _pprint_dict) rrr r Ú allowanceÚcontextÚlevelÚobjidÚrepÚ max_widthÚprrrr1šs,    zPrettyPrinter._formatc Csj|j}|dƒ|jdkr*||jddƒt|ƒ}|r^t| ¡td�} | | |||d||¡|dƒdS)NÚ{r ú )ÚkeyÚ})r2r)r=ÚsortedÚitemsr%Ú_format_dict_items) rrr r rDrErFr2ÚlengthrPrrrrC´s zPrettyPrinter._pprint_dictcCslt|ƒs| t|ƒ¡dS|j}| |jd¡| t| ¡ƒ||t|jƒd|d||¡| d¡dS)Nú(r ú))r=r2ÚreprÚ __class__rr1ÚlistrP)rrr r rDrErFÚclsrrrÚ_pprint_ordered_dictÂsz"PrettyPrinter._pprint_ordered_dictcCs0| d¡| ||||d||¡| d¡dS)Nú[r ú])r2Ú _format_items)rrr r rDrErFrrrÚ _pprint_listÏs zPrettyPrinter._pprint_listcCsH| d¡t|ƒdkrdnd}| ||||t|ƒ||¡| |¡dS)NrSr z,)rT)r2r=r\)rrr r rDrErFÚendcharrrrÚ _pprint_tuple×s  zPrettyPrinter._pprint_tuplec Cs”t|ƒs| t|ƒ¡dS|j}|tkr8| d¡d}n&| |jd¡d}|t|jƒd7}t|td�}| ||||t|ƒ||¡| |¡dS)NrKrNz({z})r )rM) r=r2rUrVÚsetrrOrr\) rrr r rDrErFÚtypr^rrrÚ _pprint_setàs  zPrettyPrinter._pprint_setcCsÚ|j}t|ƒs|t|ƒƒdSg}| d¡} |dkrD|d7}|d7}|j|} } �xt| ƒD]ü\} } t| ƒ}| t| ƒdkr†| |8} t|ƒ| krž| |¡q^t d| ¡}|s²t ‚|dr¾t ‚|  ¡| }d}xxt|ƒD]l\}}||}|t|ƒdk�r| t| ƒdk�r||8}tt|ƒƒ|k�r@|�r:| t|ƒ¡|}qØ|}qØW|r^| t|ƒ¡q^Wt|ƒdk�rx||ƒdS|dk�rŠ|dƒx8t|ƒD],\} }| dk�r¶|dd |ƒ||ƒ�q”W|dk�rÖ|d ƒdS) NTr z\S*\s*éÿÿÿÿÚrSrr0rLrT) r2r=rUÚ splitlinesr*Ú enumerateÚappendÚreÚfindallÚAssertionErrorÚpop)rrr r rDrErFr2ZchunksÚlinesZ max_width1rIÚiÚlinerHÚpartsZ max_width2ÚcurrentÚjÚpartÚ candidaterrrÚ _pprint_strôsX      $   zPrettyPrinter._pprint_strc Cs–|j}t|ƒdkr"|t|ƒƒdS|dk}|rF|d7}|d7}|dƒd} x:t||j||ƒD]$} || ƒ|| ƒ| s^dd|} q^W|r’|dƒdS)Nér rSrdr0rLrT)r2r=rUÚ_wrap_bytes_reprr*) rrr r rDrErFr2ZparensÚdelimrHrrrÚ _pprint_bytes's"  zPrettyPrinter._pprint_bytesc Cs>|j}|dƒ| t|ƒ||d|d||d¡|dƒdS)Nz bytearray(é r rT)r2rxÚbytes)rrr r rDrErFr2rrrÚ_pprint_bytearray<s zPrettyPrinter._pprint_bytearraycCs8| d¡| | ¡||d|d||¡| d¡dS)Nz mappingproxy(é r rT)r2r1Úcopy)rrr r rDrErFrrrÚ_pprint_mappingproxyEs z"PrettyPrinter._pprint_mappingproxyc Cs |j}||j7}dd|}t|ƒd} xrt|ƒD]f\} \} } | | k} | | ||¡}||ƒ|dƒ| | ||t|ƒd| r‚|nd||¡| s2||ƒq2WdS)Nz, rLr z: r)r2r)r=rfr<r1)rrPr r rDrErFr2ÚdelimnlZ last_indexrmrMÚentÚlastrHrrrrQMs    z PrettyPrinter._format_dict_itemscCsN|j}||j7}|jdkr,||jddƒdd|}d} |j|d} } t|ƒ} y t| ƒ} Wntk rvdSXd}xÌ|�sH| }y t| ƒ} Wn(tk r¼d}| |8} | |8} YnX|j�r| |||¡}t|ƒd}| |krô| } | rô|} | |k�r| |8} || ƒd} ||ƒq~|| ƒ|} |  ||||�r<|nd||¡q~WdS) Nr rLz, rdFTrz, ) r2r)r*ÚiterÚnextÚ StopIterationr/r<r=r1)rrPr r rDrErFr2rrwrrIÚitZnext_entr�r€rHÚwrrrr\^sN         zPrettyPrinter._format_itemscCs4| || ¡|j|¡\}}}|s&d|_|r0d|_|S)NFT)r5r}r(r;r:)rrrErFrUr7r8rrrr<‡s zPrettyPrinter._reprcCst||||ƒS)zÈFormat 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)rrrEÚ maxlevelsrFrrrr5�szPrettyPrinter.formatc Cs‚t|ƒs| t|ƒ¡dS| |j||¡}|j}|t|jƒd7}| d|j|d|f¡| ||||d||¡| d¡dS)Nr z %s(%s, %srLrT)r=r2rUr<Údefault_factoryrVrrC) rrr r rDrErFZrdfrXrrrÚ_pprint_default_dict—sz"PrettyPrinter._pprint_default_dictc CsŠt|ƒs| t|ƒ¡dS|j}| |jd¡|jdkrN| |jdd¡| ¡}| |||t|jƒd|d||¡| d¡dS)Nz({r rLrz}))r=r2rUrVrr)Ú most_commonrQ) rrr r rDrErFrXrPrrrÚ_pprint_counter¤s zPrettyPrinter._pprint_counterc Cs¼t|jƒs| t|ƒ¡dS|j}| |jd¡|t|jƒd7}xrt|jƒD]d\}} |t|jƒdkrŽ| | |||d||¡| d¡qP| | ||d||¡| dd|¡qPWdS)NrSr rTz, rL)r=Úmapsr2rUrVrrfr1) rrr r rDrErFrXrmÚmrrrÚ_pprint_chain_map´s  zPrettyPrinter._pprint_chain_mapc Cs¸t|ƒs| t|ƒ¡dS|j}| |jd¡|t|jƒd7}| d¡|jdkrz| ||||d||¡| d¡n:| |||d||¡| |j||¡}| dd||f¡dS)NrSr rZrz])z], %smaxlen=%s)rL)r=r2rUrVrÚmaxlenr\r<) rrr r rDrErFrXZrmlrrrÚ _pprint_dequeÅs    zPrettyPrinter._pprint_dequec Cs| |j|||||d¡dS)Nr )r1Údata)rrr r rDrErFrrrÚ_pprint_user_dictÙszPrettyPrinter._pprint_user_dictc Cs| |j|||||d¡dS)Nr )r1r‘)rrr r rDrErFrrrÚ_pprint_user_listÞszPrettyPrinter._pprint_user_listc Cs| |j|||||d¡dS)Nr )r1r‘)rrr r rDrErFrrrÚ_pprint_user_stringãsz!PrettyPrinter._pprint_user_string)r r NN)2rr r!rrrrrr1r>rCrBr@rYÚ _collectionsÚ OrderedDictr]rWr_Útuplerbr`Ú frozensetrtrrxrzr{Ú bytearrayr~Ú_typesÚMappingProxyTyperQr\r<r5r‰Ú defaultdictr‹ÚCounterrŽÚChainMapr�Údequer’ÚUserDictr“ÚUserListr”Ú UserStringrrrrrbsZ&      1    )       cCs†t|ƒ}|tkrt|ƒddfSt|ddƒ}t|tƒ�r:|tjk�r:|sJdSt|ƒ}|rl||krldd||kfS||kr‚t|ƒddfSd||<d}d}g} | j } |d7}t } t |  ¡t d�} xf| D]^\} }| | |||ƒ\}}}| ||||ƒ\}}}| d||fƒ|�o |�o |}|�s|r¾d}q¾W||=d d  | ¡||fSt|tƒ�rR|tjk�sjt|tƒ�rf|tjk�rft|tƒ�r†|�s€d Sd }n"t|ƒdk�ršd }n|�s¤dSd}t|ƒ}|�rÒ||k�rÒ|dd||kfS||k�rêt|ƒddfSd||<d}d}g} | j } |d7}x>|D]6}t ||||ƒ\}}}| |ƒ|�s)rrr)rrrrr91sr9cCs‚ddl}|dkr,ddddgdddœfgd }tƒ}| ¡}t|iddƒ| ¡}| |¡| ¡}td ||ƒtd ||ƒdS) NrÚstring)r réruéé)ééi †z _safe_repr:zpformat:)ÚtimerZ perf_counterrrÚprint)rr³rJZt1Zt2Zt3rrrÚ _perfcheck6s rµccs�d}t|ƒdd}xhtdt|ƒdƒD]T}|||d…}||}||krR||8}tt|ƒƒ|krv|rpt|ƒV|}q&|}q&W|rŒt|ƒVdS)Nórur)r=ÚrangerU)rrrDrpr�rmrrrsrrrrvCs rvÚ__main__)Nr r N)r r N)N)#r"Ú collectionsr•rhÚsysr,ÚtypesršÚiorr3Ú__all__rrrrrrr%rrr˜rrzr™r&ÚfloatÚcomplexr.rr¤r9rµrvrrrrrÚ#s6   D