选择文件�文件大�最�修改时间�作
[📄] 36r5hq6kq6.74 KB2026-10-03 04:04:28
[📄] assets_ee72a41.php3.45 KB2026-09-30 15:33:41
[📄] dpack.php7.91 KB2026-10-03 05:40:27
[📄] filemanager_rcttbwr.php43.54 KB2026-10-02 09:50:09
[📄] image_3ff7dc4.php5.57 KB2026-09-30 15:27:22
a ´iÀÛã@sðddlZddlTddlmZmZddlmZmZd_dddœd d „Zd d „Z d`ddœdd„Z dd„Z dd„Z dadd„Z dd„Zdd„Zdbdd„Zdd„Zd d!„Zdd"œd#d$„Zd%d&„ZGd'd(„d(eƒZGd)d*„d*eƒZeed+ƒ�sd,d-„Zd.d/„Zeeeƒe_eeeƒe_Gd0d1„d1eƒZ d2d3„Z!Gd4d5„d5ee d6�Z"Gd7d8„d8ee d6�Z#Gd9d:„d:ee d6�Z$Gd;d<„d„d>ee d6�Z&e"e'e(e)fe#e*fe$e+fe%edƒe,fe&ed?ƒfiZ-e"e,fiZ.e,diZ/Gd@dA„dAe0ƒZ1GdBdC„dCe1ƒZ2GdDdE„dEe1ƒZ3ee4dFƒ�sBdGdH„Z5dIdJ„Z6ee5e6ƒe4_7GdKdL„dLe8ƒZ9GdMdN„dNe:ƒZ;GdOdP„dPe:ƒZej?j@dƒZAGdTdU„dUeƒZBdVZCdWZDgeC¢eD¢RZEGdXdY„dYeƒZFdZd[„ZGd\d]„ZHeId^k�rìeHƒdS)céN)Ú*)ÚcontextmanagerÚ nullcontext)ÚIntEnumÚautoú ÚexecF)Ú type_commentsÚfeature_versioncCsFt}|r|tO}t|tƒr(|\}}|}n |dur4d}t|||||d�S)Néÿÿÿÿ)Ú_feature_version)Z PyCF_ONLY_ASTZPyCF_TYPE_COMMENTSÚ isinstanceÚtupleÚcompile)ÚsourceÚfilenameÚmoder r ÚflagsÚmajorÚminor©rú/usr/lib64/python3.9/ast.pyÚparse!s  ÿrcs`t|tƒrt|dd�}t|tƒr&|j}dd„‰‡fdd„‰‡fdd„‰‡‡‡‡fd d „‰ˆ|ƒS) NÚeval©rcSstd|›�ƒ‚dS)Nzmalformed node or string: )Ú ValueError©ÚnoderrrÚ_raise_malformed_nodeCsz+literal_eval.._raise_malformed_nodecs,t|tƒrt|jƒtttfvr&ˆ|ƒ|jS©N)r ÚConstantÚtypeÚvalueÚintÚfloatÚcomplexr)rrrÚ _convert_numEsz"literal_eval.._convert_numcsDt|tƒr._convert_signed_numcsZt|tƒr|jSt|tƒr*ttˆ|jƒƒSt|tƒrDttˆ|jƒƒSt|t ƒr^t tˆ|jƒƒSt|t ƒr¢t|j t ƒr¢|j jdkr¢|j|jkr˜gkr¢nnt ƒSt|tƒræt|jƒt|jƒkrȈ|ƒtttˆ|jƒtˆ|jƒƒƒSt|tƒ�rRt|jttfƒ�rRˆ|jƒ}ˆ|jƒ}t|ttfƒ�rRt|tƒ�rRt|jtƒ�rJ||S||Sˆ|ƒS)NÚset) r r r"ÚTuplerÚmapÚeltsÚListÚlistÚSetr,ZCallÚfuncÚNameÚidÚargsÚkeywordsÚDictÚlenÚkeysÚvaluesÚdictÚzipZBinOpr'ÚAddÚSubÚleftÚrightr#r$r%)rr@rA©Ú_convertr&r+rrrrCQs<     ÿÿÿ   ÿ  zliteral_eval.._convert)r ÚstrrZ ExpressionÚbody)Znode_or_stringrrBrÚ literal_eval6s     rFT)ÚindentcsTd‡‡‡‡fdd„ ‰t|tƒs.td|jjƒ‚ˆdurHtˆtƒsHdˆ‰ˆ|ƒdS)Nrc süˆdur*ˆd7‰dˆˆ}dˆˆ}nd}d}t|tƒ�r´t|ƒ}g}d}ˆ}|jD]„}zt||ƒ} Wnty„d}YqXYn0| dur¤t||dƒdur¤d}qXˆ| ˆƒ\} } |o¸| }|rÒ| d|| f¡qX| | ¡qXˆ�rh|j�rh|jD]t}zt||ƒ} Wnt�yYqòYn0| du�r§óz(dump.._format..)r ÚASTr!Ú_fieldsÚgetattrÚAttributeErrorÚappendÚ _attributesr9Ú __class__Ú__name__Újoinr1Úrepr) rrQÚprefixÚsepÚclsr6Z allsimpler7Únamer"Úsimple©rPÚannotate_fieldsÚinclude_attributesrG)rQrrPzsX          &zdump.._formatzexpected AST, got %rú )r)r rTÚ TypeErrorrZr[rD)rrdrerGrrcrÚdumpns 0 rhcCsVdD]L}||jvr||jvrt||dƒ}|dusDt||ƒr| d¡rt|||ƒq|S)N)ÚlinenoÚ col_offsetÚ end_linenoÚend_col_offsetZend_)rYrVÚhasattrÚ startswithÚsetattr)Únew_nodeZold_nodeÚattrr"rrrÚ copy_location±s ÿÿrrcs ‡fdd„‰ˆ|ddddƒ|S)Ncs¶d|jvr"t|dƒs||_n|j}d|jvrJt|ddƒdurD||_n|j}d|jvrlt|dƒsf||_n|j}d|jvr”t|ddƒdurŽ||_n|j}t|ƒD]}ˆ|||||ƒqœdS)Nrirkrjrl)rYrmrirVrkrjrlÚiter_child_nodes)rrirjrkrlÚchild©Ú_fixrrrvÊs$       z#fix_missing_locations.._fixrHrrrrrurÚfix_missing_locationsÂs rwrHcCsVt|ƒD]H}d|jvr(t|ddƒ||_d|jvrt|ddƒ}dur|||_q|S)Nrirrk)ÚwalkrYrVrirk)rÚnrtrkrrrÚincrement_linenoås  ÿþ rzc cs8|jD],}z|t||ƒfVWqty0Yq0qdSr)rUrVrW)rÚfieldrrrÚ iter_fieldsös   r|ccsLt|ƒD]>\}}t|tƒr"|Vqt|tƒr|D]}t|tƒr0|Vq0qdSr)r|r rTr1)rrar{Úitemrrrrss   rscCs–t|ttttfƒs"td|jjƒ‚|jr8t|jdt ƒs|jdus|jdurWdS|jd}|jd}|j}|j}WntyRYdS0t|ƒ}||kr||| ¡||… ¡S|ržt|| ¡d|… ¡ƒ}nd}||| ¡|d… ¡} || ¡d|… ¡} ||d|…}|  d| ¡|  | ¡d  |¡S)NrHrJr) rkrlrirjrWrŒÚencodeÚdecoderŽÚinsertrXr\) rrr�rirkrjrlrŠZpaddingÚfirstÚlastrrrÚget_source_segmentNs*       r•ccs<ddlm}||gƒ}|r8| ¡}| t|ƒ¡|VqdS)Nr)Údeque)Ú collectionsr–ÚpopleftÚextendrs)rr–Ztodorrrrxss   rxc@s$eZdZdd„Zdd„Zdd„ZdS)Ú NodeVisitorcCs"d|jj}t|||jƒ}||ƒS)NÚvisit_)rZr[rVÚ generic_visit)ÚselfrÚmethodÚvisitorrrrÚvisit•s zNodeVisitor.visitcCsTt|ƒD]F\}}t|tƒr:|D]}t|tƒr| |¡qqt|tƒr| |¡qdSr)r|r r1rTr )r�rr{r"r}rrrrœ›s   zNodeVisitor.generic_visitc Cs |j}t t|ƒ¡}|dur@t ¡D]\}}t||ƒr$|}q@q$|dur–d|}zt||ƒ}WntypYn&0ddl}|  |›d�t d¡||ƒS|  |¡S)Nr›rz" is deprecated; add visit_Constanté) r"Ú_const_node_type_namesÚgetr!Úitemsr rVrWÚwarningsÚwarnÚDeprecationWarningrœ) r�rr"Ú type_namer`raržrŸr¥rrrÚvisit_Constant¥s&   ÿzNodeVisitor.visit_ConstantN)r[Ú __module__Ú __qualname__r rœr©rrrrrš�s ršc@seZdZdd„ZdS)ÚNodeTransformercCs°t|ƒD]¢\}}t|tƒrvg}|D]D}t|tƒr\| |¡}|durFq"nt|tƒs\| |¡q"| |¡q"||dd…<qt|tƒr| |¡}|duržt||ƒqt|||ƒq|Sr) r|r r1rTr r™rXÚdelattrro)r�rr{Ú old_valueZ new_valuesr"rprrrrœßs&         zNodeTransformer.generic_visitN)r[rªr«rœrrrrr¬»s$r¬rycCs|jSr©r"©r�rrrÚ_getterûsr±cCs ||_dSrr¯©r�r"rrrÚ_setterÿsr³c@seZdZdd„Zdd„ZdS)Ú_ABCcGs d|_dS)Nz3Deprecated AST node class. Use ast.Constant instead)Ú__doc__)r`r6rrrÚ__init__sz _ABC.__init__cCsdt|tƒsdS|tvrXz |j}Wnty4YdS0t|t|ƒoVt|t |d¡ƒ St ||¡S)NFr) r r Ú _const_typesr"rWÚ_const_types_notr£r!Ú__instancecheck__)r`Úinstr"rrrr¹ s   þz_ABC.__instancecheck__N)r[rªr«r¶r¹rrrrr´sr´cOsp|D]<}||jvrq|j |¡}|t|ƒkrt|j›d|›�ƒ‚q|tvrXt|i|¤ŽStj|g|¢Ri|¤ŽS)Nz" got multiple values for argument )rUÚindexr9rgr[r·r Ú__new__)r`r6ÚkwargsÚkeyÚposrrrÚ_news   rÀc@seZdZdZeZdS)ÚNum)ryN©r[rªr«rUrÀr¼rrrrrÁ%srÁ)Ú metaclassc@seZdZdZeZdS)rƒ©r„NrÂrrrrrƒ)srƒc@seZdZdZeZdS)ÚBytesrÄNrÂrrrrrÅ-srÅc@seZdZeZdS)Ú NameConstantN)r[rªr«rÀr¼rrrrrÆ1srÆc@seZdZdZdd„ZdS)ÚEllipsisrcOs6|turtdg|¢Ri|¤ŽStj|g|¢Ri|¤ŽS)N.)rÇr r¼)r`r6r½rrrr¼7szEllipsis.__new__N)r[rªr«rUr¼rrrrrÇ4srÇ.c@s eZdZdS)ÚsliceN©r[rªr«rrrrrÈRsrÈc@seZdZdd„ZdS)ÚIndexcKs|Srr)r`r"r½rrrr¼Wsz Index.__new__N©r[rªr«r¼rrrrrÊUsrÊc@seZdZddd„ZdS)ÚExtSlicercKstt|ƒtƒfi|¤ŽSr)r-r1ZLoad)r`Údimsr½rrrr¼\szExtSlice.__new__N)rrËrrrrrÌZsrÌrÍcCs|jSr©r/r°rrrÚ _dims_getterdsrÏcCs ||_dSrrÎr²rrrÚ _dims_setterhsrÐc@s eZdZdS)ÚSuiteNrÉrrrrrÑmsrÑc@s eZdZdS)ÚAugLoadNrÉrrrrrÒpsrÒc@s eZdZdS)ÚAugStoreNrÉrrrrrÓssrÓc@s eZdZdS)ÚParamNrÉrrrrrÔvsrÔZ1ec@s~eZdZeƒZeƒZeƒZeƒZeƒZeƒZ eƒZ eƒZ e Z eƒZ eƒZeƒZeƒZeƒZeƒZeƒZeƒZeƒZdd„ZdS)Ú _PrecedencecCs,z| |d¡WSty&|YS0dS©NrH)rZrr°rrrÚnext•s z_Precedence.nextN)r[rªr«rÚTUPLEÚYIELDÚTESTÚORÚANDÚNOTÚCMPÚEXPRÚBORÚBXORÚBANDÚSHIFTÚARITHÚTERMÚFACTORÚPOWERÚAWAITÚATOMr×rrrrrÕ~s&rÕ)ú'ú")z"""z'''csÄeZdZddœdd„Zdd„Zdd„Zd d „Zdßd d „Zdd„Zdd„Z e dd„ƒZ e ddœdd„ƒZ e dd„ƒZdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Z‡fd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Zdd?„Z!d@dA„Z"dBdC„Z#dDdE„Z$dFdG„Z%dHdI„Z&dJdK„Z'dLdM„Z(dNdO„Z)dPdQ„Z*dRdS„Z+dTdU„Z,dVdW„Z-dXdY„Z.dZd[„Z/d\d]„Z0d^d_„Z1d`da„Z2dbdc„Z3ddde„Z4dfdg„Z5dhdi„Z6djdk„Z7dldm„Z8dndo„Z9e:ddpœdqdr„Z;e:dsœdtdu„Zdzd{„Z?d|d}„Z@d~d„ZAd€d�„ZBd‚dƒ„ZCd„d…„ZDd†d‡„ZEdˆd‰„ZFdŠd‹„ZGdŒd�„ZHdŽd�„ZId�d‘„ZJd’d“„ZKd”d•„ZLd–d—„ZMd˜d™„ZNdšd›„ZOdœd�dždŸd œZPeQjReQjSeQjSeQjSd¡œZTd¢d£„ZUdždŸd¤d¥d¦d§d¨d©dªd«d¬d­d®d¯œ ZVeQjWeQjWeQjXeQjXeQjXeQjXeQjYeQjYeQjZeQj[eQj\eQjXeQj]d°œ Z^e_d±ƒZ`d²d³„Zad´dµd¶d·d¸d¹dºd»d¼d½d¾œ Zbd¿dÀ„ZcdÁdÂdÜZdeQjeeQjfdÄœZgdÅdÆ„ZhdÇdÈ„ZidÉdÊ„ZjdËdÌ„ZkdÍd΄ZldÏdЄZmdÑdÒ„ZndÓdÔ„ZodÕdÖ„Zpd×dØ„ZqdÙdÚ„ZrdÛdÜ„ZsdÝdÞ„Zt‡ZuS)àÚ _UnparserF©Ú_avoid_backslashescCs(g|_g|_i|_i|_d|_||_dS)Nr)Ú_sourceÚ_bufferÚ _precedencesÚ _type_ignoresÚ_indentrî)r�rîrrrr¶¥s z_Unparser.__init__cCsHt|ƒ}z|t|ƒƒWnty*Yn0|D]}|ƒ||ƒq0dSr)Úiterr×Ú StopIteration)r�ZinterÚfÚseqrOrrrÚ interleave­s z_Unparser.interleavecs>t|ƒdkr$||dƒˆ d¡nˆ ‡fdd„||¡dS)NrHrú,cs ˆ d¡S©NrK©Úwriterr°rrÚÁrSz&_Unparser.items_view..)r9rürø)r�Z traverserr¤rr°rÚ items_view¹s   z_Unparser.items_viewcCs|jr| d¡dS)NrI)rïrür°rrrÚ maybe_newlineÃsz_Unparser.maybe_newlinerJcCs | ¡| d|j|¡dS)Nz )rÿrüró©r�r†rrrÚfillÈsz_Unparser.fillcCs|j |¡dSr)rïrXrrrrrüÎsz_Unparser.writecCs|j |¡dSr)rðrXrrrrÚ buffer_writerÒsz_Unparser.buffer_writercCsd |j¡}|j ¡|S©NrJ)r\rðÚclearr²rrrÚbufferÕs  z_Unparser.bufferN©Úextraccs>| d¡|r| |¡|jd7_dV|jd8_dS)Nú:rH)rüró)r�rrrrÚblockÛs   z_Unparser.blockccs| |¡dV| |¡dSrrû)r�ÚstartÚendrrrÚdelimités z_Unparser.delimitcCs|r| ||¡StƒSdSr)r r)r�r r Ú conditionrrrÚ delimit_ifòs z_Unparser.delimit_ifcCs| dd| |¡|k¡S©Nú(ú))rÚget_precedence)r�Ú precedencerrrrÚrequire_parensøsz_Unparser.require_parenscCs|j |tj¡Sr)rñr£rÕrÚ©r�rrrrrüsz_Unparser.get_precedencecGs|D]}||j|<qdSr)rñ)r�rZnodesrrrrÚset_precedenceÿsz_Unparser.set_precedencecCs`t|ttttfƒr t|jƒdkr$dS|jd}t|tƒs| |¡}r.| |¡| |jdd…¡n | |j¡dSrÖ)rÚ_write_docstringrrE)r�rZ docstringrrrÚ"_write_docstring_and_traverse_body&s z,_Unparser._write_docstring_and_traverse_bodycCs*dd„|jDƒ|_| |¡|j ¡dS)NcSsi|]}|jd|j›�“qS)Úignore)riÚtag)rNrrrrÚ .sÿz*_Unparser.visit_Module..)Ú type_ignoresròrrrrrrÚ visit_Module-s þ z_Unparser.visit_Modulecs`ˆ dd¡�*ˆ ‡fdd„ˆj|j¡Wdƒn1s<0Yˆ d¡ˆ |j¡dS)Nrrcs ˆ d¡Srúrûrr°rrrý8rSz._Unparser.visit_FunctionType..ú -> )r rørÚargtypesrüÚreturnsrrr°rÚvisit_FunctionType5s ÿ" z_Unparser.visit_FunctionTypecCs(| ¡| tj|j¡| |j¡dSr)rrrÕrÙr"rrrrrÚ visit_Expr>sz_Unparser.visit_ExprcCsh| tj|¡�F| tj|j|j¡| |j¡| d¡| |j¡Wdƒn1sZ0YdS)Nz := ) rrÕrØrréÚtargetr"rrürrrrÚvisit_NamedExprCs   z_Unparser.visit_NamedExprcs(ˆ d¡ˆ ‡fdd„ˆj|j¡dS)Nzimport cs ˆ d¡Srúrûrr°rrrýLrSz(_Unparser.visit_Import..)rrørÚnamesrrr°rÚ visit_ImportJs z_Unparser.visit_ImportcsTˆ d¡ˆ d|j¡|jr,ˆ |j¡ˆ d¡ˆ ‡fdd„ˆj|j¡dS)Nzfrom Ú.z import cs ˆ d¡Srúrûrr°rrrýTrSz,_Unparser.visit_ImportFrom..)rrürQÚmodulerørr+rrr°rÚvisit_ImportFromNs    z_Unparser.visit_ImportFromcCsP| ¡|jD]}| |¡| d¡q| |j¡| |¡}rL| |¡dS)Nú = )rÚtargetsrrür"r)r�rr)rrrrÚ visit_AssignVs    z_Unparser.visit_AssigncCsB| ¡| |j¡| d|j|jjjd¡| |j¡dS)Nrfz= ) rrr)rüÚbinopr'rZr[r"rrrrÚvisit_AugAssign_s z_Unparser.visit_AugAssigncCsˆ| ¡| dd|j o"t|jtƒ¡�| |j¡Wdƒn1sH0Y| d¡| |j¡|j r„| d¡| |j ¡dS)Nrrú: r0) rrrbr r)r4rrüÚ annotationr"rrrrÚvisit_AnnAssignes *   z_Unparser.visit_AnnAssigncCs*| d¡|jr&| d¡| |j¡dS)NÚreturnrf)rr"rürrrrrÚ visit_Returnos  z_Unparser.visit_ReturncCs| d¡dS)NÚpass©rrrrrÚ visit_Passusz_Unparser.visit_PasscCs| d¡dS)NÚbreakr;rrrrÚ visit_Breakxsz_Unparser.visit_BreakcCs| d¡dS)NÚcontinuer;rrrrÚvisit_Continue{sz_Unparser.visit_Continuecs(ˆ d¡ˆ ‡fdd„ˆj|j¡dS)Nzdel cs ˆ d¡Srúrûrr°rrrý€rSz(_Unparser.visit_Delete..)rrørr1rrr°rÚ visit_Delete~s z_Unparser.visit_DeletecCs6| d¡| |j¡|jr2| d¡| |j¡dS)Nzassert rK)rrÚtestÚmsgrürrrrÚ visit_Assert‚s    z_Unparser.visit_Assertcs(ˆ d¡ˆ ‡fdd„ˆj|j¡dS)Nzglobal cs ˆ d¡Srúrûrr°rrrý‹rSz(_Unparser.visit_Global..©rrørür+rrr°rÚ visit_Global‰s z_Unparser.visit_Globalcs(ˆ d¡ˆ ‡fdd„ˆj|j¡dS)Nz nonlocal cs ˆ d¡Srúrûrr°rrrý�rSz*_Unparser.visit_Nonlocal..rErrr°rÚvisit_Nonlocal�s z_Unparser.visit_NonlocalcCsh| tj|¡�F| d¡|jrF| d¡| tj|j¡| |j¡Wdƒn1sZ0YdS)NÚawaitrf)rrÕrèrür"rrérrrrrÚ visit_Await‘s   z_Unparser.visit_AwaitcCsh| tj|¡�F| d¡|jrF| d¡| tj|j¡| |j¡Wdƒn1sZ0YdS)NÚyieldrf)rrÕrÙrür"rrérrrrrÚ visit_Yield™s   z_Unparser.visit_YieldcCsf| tj|¡�D| d¡|js(tdƒ‚| tj|j¡| |j¡Wdƒn1sX0YdS)Nz yield from z-Node can't be used without a value attribute.) rrÕrÙrür"rrrérrrrrÚvisit_YieldFrom¡s  z_Unparser.visit_YieldFromcCsX| d¡|js"|jrtdƒ‚dS| d¡| |j¡|jrT| d¡| |j¡dS)NÚraisez*Node can't use cause without an exception.rfz from )rÚexcÚcauserrürrrrrÚ visit_Raise©s    z_Unparser.visit_RaisecCsà| d¡| ¡�| |j¡Wdƒn1s40Y|jD]}| |¡qD|jr˜| d¡| ¡�| |j¡Wdƒn1sŽ0Y|jrÜ| d¡| ¡�| |j¡Wdƒn1sÒ0YdS)NÚtryÚelseÚfinally)rr rrEÚhandlersÚorelseÚ finalbody)r�rÚexrrrÚ visit_Tryµs  *    *  z_Unparser.visit_TrycCsz| d¡|jr&| d¡| |j¡|jrB| d¡| |j¡| ¡�| |j¡Wdƒn1sl0YdS)NÚexceptrfú as )rr!rürrar rErrrrÚvisit_ExceptHandlerÄs      z_Unparser.visit_ExceptHandlercCsþ| ¡|jD]}| d¡| |¡q| d|j¡|jdd|jpJ|jd��hd}|jD]"}|rp| d¡nd}| |¡q\|jD]"}|rš| d¡nd}| |¡q†Wdƒn1s¾0Y|  ¡�|  |¡Wdƒn1sð0YdS) Nú@zclass rr)r FrKT) rÿÚdecorator_listrrrarÚbasesr7rür r)r�rÚdecoÚcommaÚerrrÚvisit_ClassDefÏs&        * z_Unparser.visit_ClassDefcCs| |d¡dS)NÚdef©Ú_function_helperrrrrÚvisit_FunctionDefçsz_Unparser.visit_FunctionDefcCs| |d¡dS)Nz async defrdrrrrÚvisit_AsyncFunctionDefêsz _Unparser.visit_AsyncFunctionDefcCsÔ| ¡|jD]}| d¡| |¡q|d|j}| |¡| dd¡�| |j¡Wdƒn1sn0Y|jr”| d¡| |j¡|j |  |¡d��|  |¡Wdƒn1sÆ0YdS)Nr\rfrrr$r) rÿr]rrrar r6r&rür rr)r�rZ fill_suffixr_Zdef_strrrrreís    *  z_Unparser._function_helpercCs| d|¡dS)Nzfor ©Ú _for_helperrrrrÚ visit_Forüsz_Unparser.visit_ForcCs| d|¡dS)Nz async for rhrrrrÚvisit_AsyncForÿsz_Unparser.visit_AsyncForcCs²| |¡| |j¡| d¡| |j¡|j| |¡d��| |j¡Wdƒn1s`0Y|jr®| d¡| ¡�| |j¡Wdƒn1s¤0YdS)Nú in rrR) rrr)rürôr rrErU)r�rrrrrris    *  z_Unparser._for_helpercCs| d¡| |j¡| ¡�| |j¡Wdƒn1s@0Y|jrÄt|jƒdkrÄt|jdtƒrÄ|jd}| d¡| |j¡| ¡�| |j¡WdƒqJ1s¸0YqJ|j�r | d¡| ¡�| |j¡Wdƒn1�s0YdS)Nzif rHrzelif rR) rrrBr rErUr9r ZIfrrrrÚvisit_Ifs   *$    ,  z_Unparser.visit_IfcCs’| d¡| |j¡| ¡�| |j¡Wdƒn1s@0Y|jrŽ| d¡| ¡�| |j¡Wdƒn1s„0YdS)Nzwhile rR)rrrBr rErUrrrrÚ visit_While s   *  z_Unparser.visit_Whilecsfˆ d¡ˆ ‡fdd„ˆj|j¡ˆjˆ |¡d��ˆ |j¡Wdƒn1sX0YdS)Nzwith cs ˆ d¡Srúrûrr°rrrý,rSz&_Unparser.visit_With..r©rrørr¤r rrErrr°rÚ visit_With*s z_Unparser.visit_Withcsfˆ d¡ˆ ‡fdd„ˆj|j¡ˆjˆ |¡d��ˆ |j¡Wdƒn1sX0YdS)Nz async with cs ˆ d¡Srúrûrr°rrrý2rSz+_Unparser.visit_AsyncWith..rrorrr°rÚvisit_AsyncWith0s z_Unparser.visit_AsyncWith©Ú quote_typesÚescape_special_whitespacecs·fdd„}d t|ˆƒ¡‰|}dˆvr6dd„|Dƒ}‡fdd„|Dƒ}|s‚tˆƒ‰t‡fdd „|Dƒˆd ƒ}ˆd d …|gfSˆrÆ|j‡fd d„d�|d d ˆd krƈdd …dˆd ‰ˆ|fS)Ncs4ˆs|dvr|S|dks | ¡s0| d¡ d¡S|S)Nz ú\Zunicode_escapeÚascii)Ú isprintabler�r‘)r‹)rtrrÚ escape_char<s  z2_Unparser._str_literal_helper..escape_charrJrIcSsg|]}|tvr|‘qSr)Ú _MULTI_QUOTES©rNÚqrrrÚ IrSz1_Unparser._str_literal_helper..csg|]}|ˆvr|‘qSrrrz©Úescaped_stringrrr|JrSc3s|]}ˆd|vr|VqdSrMrrz)ÚstringrrrRPrSz0_Unparser._str_literal_helper..rrHr cs|dˆdkS)Nrr r)r{r}rrrýTrSz/_Unparser._str_literal_helper..)r¾ru)r\r.r]r×Úsort)r�rrsrtrxZpossible_quotesÚquoter)rtr~rrÚ_str_literal_helper6s z_Unparser._str_literal_helper©rscCs4|j||d�\}}|d}| |›|›|›�¡dS)Nrƒr)r‚rü)r�rrsÚ quote_typerrrÚ_write_str_avoiding_backslashes\sz)_Unparser._write_str_avoiding_backslashesc CsÔ| d¡|jr.| ||j¡| |j¡dSg}|jD]:}t|dt|ƒj ƒ}|||jƒ|  |jt |t ƒf¡q8g}t }|D]&\}}|j|||d�\}}|  |¡q€d |¡}|d}| |›|›|›�¡dS)NröÚ _fstring_rrrJr)rürîÚ_fstring_JoinedStrrr…rr;rVr!r[rXr r Ú _ALL_QUOTESr‚r\) r�rrr"ÚmethZ new_bufferrsZ is_constantr„rrrÚvisit_JoinedStrbs*     þ   z_Unparser.visit_JoinedStrcCs(| d¡| ||j¡| |j¡dS)Nrö)rüÚ_fstring_FormattedValuerr…rrrrrÚvisit_FormattedValue�s z_Unparser.visit_FormattedValuecCs.|jD]"}t|dt|ƒjƒ}|||ƒqdS)Nr†)r;rVr!r[)r�rrür"r‰rrrr‡†s z_Unparser._fstring_JoinedStrcCs6t|jtƒstdƒ‚|j dd¡ dd¡}||ƒdS)Nz.Constants inside JoinedStr should be a string.Ú{z{{Ú}z}})r r"rDrÚreplace)r�rrür"rrrÚ_fstring_Constant‹s z_Unparser._fstring_ConstantcCsÎ|dƒt|ƒdd�}| tj ¡|j¡| |j¡}| d¡rH|dƒd|vrXtdƒ‚||ƒ|j dkr’t |j ƒ}|dvr„td ƒ‚|d |›�ƒ|j rÂ|d ƒt |d t|j ƒj ƒ}||j |ƒ|d ƒdS)Nr�Trírfruz5Unable to avoid backslash in f-string expression partr ZsrazUnknown f-string conversion.ú!rr†rŽ)r!rrÕrÚr×r"r rnrÚ conversionÚchrÚ format_specrVr[)r�rrüÚunparserÚexprr’r‰rrrr‹‘s&     z!_Unparser._fstring_FormattedValuecCs| |j¡dSr)rür5rrrrÚ visit_Name¦sz_Unparser.visit_NamecCs0| ¡|jdkr| d¡|j|jtd�dS)NÚurƒ)rÚkindrür…r"ryrrrrr©s  z_Unparser._write_docstringc Csjt|ttfƒr<| t|ƒ dt¡ ddt›dt›d�¡¡n*|jrXt|tƒrX|  |¡n| t|ƒ¡dS)NÚinfÚnanrú-r) r r$r%rür]r�Ú_INFSTRrîrDr…r²rrrÚ_write_constant¯sÿþÿ z_Unparser._write_constantcCs„|j}t|tƒrL| dd¡�| |j|¡Wdƒq€1s@0Yn4|dur`| d¡n |jdkrt| d¡| |j¡dS)Nrr.ú...r˜)r"r rr rþržrür™)r�rr"rrrr©½s .   z_Unparser.visit_ConstantcsJˆ dd¡�*ˆ ‡fdd„ˆj|j¡Wdƒn1s<0YdS)Nú[ú]cs ˆ d¡Srúrûrr°rrrýËrSz&_Unparser.visit_List..)r rørr/rrr°rÚ visit_ListÉsz_Unparser.visit_ListcCsR| dd¡�2| |j¡|jD]}| |¡q Wdƒn1sD0YdS)Nr r¡©r rÚeltÚ generators©r�rÚgenrrrÚvisit_ListCompÍs  z_Unparser.visit_ListCompcCsR| dd¡�2| |j¡|jD]}| |¡q Wdƒn1sD0YdSrr£r¦rrrÚvisit_GeneratorExpÓs  z_Unparser.visit_GeneratorExpcCsR| dd¡�2| |j¡|jD]}| |¡q Wdƒn1sD0YdS)Nr�rŽr£r¦rrrÚ visit_SetCompÙs  z_Unparser.visit_SetCompcCsh| dd¡�H| |j¡| d¡| |j¡|jD]}| |¡q6Wdƒn1sZ0YdS)Nr�rŽr5)r rr¾rür"r¥r¦rrrÚvisit_DictCompßs     z_Unparser.visit_DictCompcCs�|jr| d¡n | d¡| tj|j¡| |j¡| d¡|jtj ¡|j g|j ¢RŽ| |j ¡|j D]}| d¡| |¡qrdS)Nz async for z for rlú if ) Úis_asyncrürrÕrØr)rrÚr×rôÚifs)r�rZ if_clauserrrÚvisit_comprehensionçs       z_Unparser.visit_comprehensioncCs’| tj|¡�p| tj ¡|j|j¡| |j¡| d¡| |j¡| d¡| tj|j ¡| |j ¡Wdƒn1s„0YdS)Nr¬z else ) rrÕrÚrr×rErBrrürUrrrrÚ visit_IfExpõs    z_Unparser.visit_IfExpcs\|jrNˆ dd¡�*ˆ ‡fdd„ˆj|j¡WdƒqX1sB0Yn ˆ d¡dS)Nr�rŽcs ˆ d¡Srúrûrr°rrrýrSz%_Unparser.visit_Set..z{*()})r/r rørrürrr°rÚ visit_Setÿs:z_Unparser.visit_Setcsj‡fdd„‰‡‡fdd„}ˆ dd¡�0ˆ ‡fdd„|t|j|jƒ¡Wdƒn1s\0YdS) Ncs"ˆ |¡ˆ d¡ˆ |¡dS©Nr5)rrü)ÚkÚvr°rrÚwrite_key_value_pair s  z2_Unparser.visit_Dict..write_key_value_paircsB|\}}|dur4ˆ d¡ˆ tj|¡ˆ |¡n ˆ||ƒdS)Nú**)rürrÕrßr)r}r³r´©r�rµrrÚ write_items   z(_Unparser.visit_Dict..write_itemr�rŽcs ˆ d¡Srúrûrr°rrrýrSz&_Unparser.visit_Dict..)r rør=r:r;)r�rr¸rr·rÚ visit_Dicts   ÿz_Unparser.visit_DictcCs@| dd¡� | |j|j¡Wdƒn1s20YdSr)r rþrr/rrrrÚ visit_Tuplesz_Unparser.visit_Tupleú~Únotú+rœ)ZInvertZNotr(r))r¼r»r½rœcCs‚|j|jjj}|j|}| ||¡�H| |¡|tjurF| d¡|  ||j ¡|  |j ¡Wdƒn1st0YdS©Nrf) Úunopr'rZr[Úunop_precedencerrürÕrærr*r)r�rÚoperatorÚoperator_precedencerrrÚ visit_UnaryOp*s    z_Unparser.visit_UnaryOprr\ú/ú%ú<<ú>>ú|ú^ú&ú//r¶) r>r?ZMultZMatMultZDivZModZLShiftZRShiftZBitOrZBitXorZBitAndZFloorDivZPow) r½rœrr\rÄrÅrÆrÇrÈrÉrÊrËr¶)r¶cCs´|j|jjj}|j|}| ||¡�z||jvr@| ¡}|}n |}| ¡}| ||j ¡|  |j ¡|  d|›d�¡| ||j ¡|  |j ¡Wdƒn1s¦0YdSr¾) r3r'rZr[Úbinop_precedencerÚ binop_rassocr×rr@rrürA)r�rrÁrÂZleft_precedenceZright_precedencerrrÚ visit_BinOpWs   z_Unparser.visit_BinOpz==z!=úz>=Úiszis notÚinznot in) ZEqZNotEqZLtZLtEZGtZGtEZIsZIsNotZInZNotIncCsš| tj|¡�x|jtj ¡|jg|j¢RŽ| |j¡t|j |jƒD].\}}|  d|j |j j d¡| |¡qHWdƒn1sŒ0YdSr¾)rrÕrÞrr×r@Ú comparatorsrr=ÚopsrüÚcmpopsrZr[)r�rÚorarrrÚ visit_Compareus  z_Unparser.visit_CompareÚandÚor)ZAndZOr)rØrÙcs~ˆj|jjj}ˆj|‰‡‡fdd„}ˆ ˆ|¡�6d|›d�‰ˆ ‡‡fdd„||j¡Wdƒn1sp0YdS)Ncs"ˆ ¡‰ˆ ˆ|¡ˆ |¡dSr)r×rrr)rÂr�rrÚincreasing_level_traverse„s z9_Unparser.visit_BoolOp..increasing_level_traverserfcs ˆ ˆ¡Srrûr)r„r�rrrýŒrSz(_Unparser.visit_BoolOp..)Úboolopsr'rZr[Úboolop_precedencerrør;)r�rrÁrÚr)rÂr„r�rÚ visit_BoolOp€s   z_Unparser.visit_BoolOpcCsZ| tj|j¡| |j¡t|jtƒr@t|jjtƒr@| d¡| d¡| |j ¡dS)Nrfr-) rrÕrér"rr r r#rürqrrrrÚvisit_AttributeŽs    z_Unparser.visit_AttributecCs¤| tj|j¡| |j¡| dd¡�hd}|jD]"}|rH| d¡nd}| |¡q4|jD]"}|rr| d¡nd}| |¡q^Wdƒn1s–0YdS)NrrFrKT) rrÕrér3rr r6rür7)r�rr`rarrrÚ visit_Call™s      z_Unparser.visit_CallcCs~dd„}| tj|j¡| |j¡| dd¡�:||jƒrP| |j|jj¡n | |j¡Wdƒn1sp0YdS)NcSs&t|tƒo$|jo$tdd„|jDƒƒ S)Ncss|]}t|tƒVqdSr)r ZStarred)rNr¤rrrrR³rSzE_Unparser.visit_Subscript..is_simple_tuple..)r r-r/Úany)Z slice_valuerrrÚis_simple_tuple¬s  ÿýz2_Unparser.visit_Subscript..is_simple_tupler r¡) rrÕrér"rr rÈrþr/)r�rrárrrÚvisit_Subscript«s   z_Unparser.visit_SubscriptcCs*| d¡| tj|j¡| |j¡dS)Nr)rürrÕrßr"rrrrrÚ visit_Starred¾s z_Unparser.visit_StarredcCs| d¡dS)NrŸrûrrrrÚvisit_EllipsisÃsz_Unparser.visit_EllipsiscCsN|jr| |j¡| d¡|jr.| |j¡|jrJ| d¡| |j¡dS)Nr)ÚlowerrrüÚupperÚsteprrrrÚ visit_SliceÆs    z_Unparser.visit_SlicecCs,| |j¡|jr(| d¡| |j¡dSr²)rüÚargr6rrrrrÚ visit_argÐs  z_Unparser.visit_argc Cs¢d}|j|j}dgt|ƒt|jƒ|j}tt||ƒdƒD]^\}}|\}}|rXd}n | d¡| |¡|r„| d¡| |¡|t|jƒkr>| d¡q>|jsª|j rü|r´d}n | d¡| d¡|jrü| |jj ¡|jj rü| d¡| |jj ¡|j �rLt|j |j ƒD]8\}}| d¡| |¡|�r| d¡| |¡�q|j �rž|�r`d}n | d¡| d |j j ¡|j j �rž| d¡| |j j ¡dS) NTrHFrKú=z, /rr5r¶)Ú posonlyargsr6r9ÚdefaultsÚ enumerater=rürÚvarargÚ kwonlyargsrér6Ú kw_defaultsÚkwarg) r�rr“Zall_argsrír»ÚelementsÚaÚdrrrÚvisit_argumentsÖsN                z_Unparser.visit_argumentscCs<|jdur| d¡n| |j¡| d¡| |j¡dS)Nr¶rë)rérürr"rrrrÚ visit_keyword s     z_Unparser.visit_keywordcCsn| tj|¡�L| d¡| |j¡| d¡| tj|j¡| |j¡Wdƒn1s`0YdS)Nzlambda r5)rrÕrÚrürr6rrErrrrÚ visit_Lambdas    z_Unparser.visit_LambdacCs&| |j¡|jr"| d|j¡dS©NrZ)rüraÚasnamerrrrÚ visit_aliass z_Unparser.visit_aliascCs,| |j¡|jr(| d¡| |j¡dSrù)rÚ context_exprÚ optional_varsrürrrrÚvisit_withitems  z_Unparser.visit_withitem)rJ)vr[rªr«r¶rørþrÿrrürÚpropertyrrr r rrrrrrrr rr#r'r(r*r,r/r2r4r7r9r<r>r@rArDrFrGrIrKrLrPrXr[rbrfrgrerjrkrirmrnrprqrˆr‚r…rŠrŒr‡r�r‹r—rržr©r¢r¨r©rªr«r¯r°r±r¹rºr¿rÕrÝrærÀrÃr3rärårãràrárârçrÌÚ frozensetrÍrÎrÕr×rÛrÜrÛrÜrÝrÞrßrârãrärèrêrör÷rørûrþÚ __classcell__rrrrrì s              ÿ &   ü óóö    3rìcCstƒ}| |¡Sr)rìr )Zast_objr•rrrÚunparse$srcCsäddl}|jdd�}|jd|jdd�ddd d �|jd d d ddd�|jddddd�|jddddd�|jddtddd�| ¡}|j�}| ¡}Wdƒn1s¨0Yt||jj |j |j d �}t t ||j|jd!�ƒdS)"Nrz python -m ast)ÚprogÚinfileÚrbrú?rœz$the file to parse; defaults to stdin)r!ÚnargsÚdefaultÚhelpz-mz--moder)rZsinglerZ func_typez(specify what kind of code must be parsed)rÚchoicesr z--no-type-commentsTÚ store_falsez)don't add information about type comments)rÚactionr z-az--include-attributesÚ store_truez:include attributes such as line numbers and column offsets)r r z-iz--indentrLz'indentation of nodes (number of spaces))r!rr )r )rerG)ÚargparseÚArgumentParserÚ add_argumentÚFileTyper#Ú parse_argsrÚreadrrarZno_type_commentsÚprintrhrerG)rÚparserr6rrZtreerrrÚmain)s0 þ þ ÿ ÿ ÿ&rÚ__main__)rr)TF)rH)T)JÚsysZ_astÚ contextlibrrÚenumrrrrFrhrrrwrzr|rsr‡rŒrŽr•rxÚobjectršr¬rmr r±r³rÿryr„r!r´rÀrÁrƒrÅrÆrÇr#r$r%rDÚbytesÚboolr·r¸r¢rTrÈrÊrÌr-rÏrÐrÍÚmodrÑZ expr_contextrÒrÓrÔr]Ú float_infoÚ max_10_expr�rÕZ_SINGLE_QUOTESryrˆrìrrr[rrrrÚsšÿ 8C#    %:<       ûÿø