grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?hÀÛã@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ú(/opt/alt/python39/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ÚfirstZlastrrrÚ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"Z 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írXrþrrrrúÎsz_Unparser.writecCs|j |¡dSr)rîrXrþrrrÚ 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œrr Ú 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)rÿrrÓ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..)rÿrö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..)rÿrú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= ) rÿrr'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ú: r.) rÿr rbr r'r4rrúÚ annotationr"rrrrÚvisit_AnnAssignes *   z_Unparser.visit_AnnAssigncCs*| d¡|jr&| d¡| |j¡dS)NÚreturnrf)rÿr"rúrrrrrÚ visit_Returnos  z_Unparser.visit_ReturncCs| d¡dS)NÚpass©rÿrrrrÚ visit_Passusz_Unparser.visit_PasscCs| d¡dS)NÚbreakr9rrrrÚ visit_Breakxsz_Unparser.visit_BreakcCs| d¡dS)NÚcontinuer9rrrrÚvisit_Continue{sz_Unparser.visit_Continuecs(ˆ d¡ˆ ‡fdd„ˆj|j¡dS)Nzdel cs ˆ d¡Srørùrr®rrrû€rSz(_Unparser.visit_Delete..)rÿrörr/rrr®rÚ visit_Delete~s z_Unparser.visit_DeletecCs6| d¡| |j¡|jr2| d¡| |j¡dS)Nzassert rK)rÿrÚ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..©rÿrö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..rCrrr®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)rÿrrrEÚhandlersÚorelseÚ finalbody)rœrZexrrrÚ visit_Tryµs  *    *  z_Unparser.visit_TrycCsz| d¡|jr&| d¡| |j¡|jrB| d¡| |j¡| ¡�| |j¡Wdƒn1sl0YdS)NÚexceptrfú as )rÿr!rúrrarrErrrrÚ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_listrÿrrar Úbasesr7rúrr)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 defrarrrrÚvisit_AsyncFunctionDefêsz _Unparser.visit_AsyncFunctionDefcCsÔ| ¡|jD]}| d¡| |¡q|d|j}| |¡| dd¡�| |j¡Wdƒn1sn0Y|jr”| d¡| |j¡|j |  |¡d��|  |¡Wdƒn1sÆ0YdS)NrYrfrrr"r) rýrZrÿrrar r6r$rúrrr)rœrZ fill_suffixr\Zdef_strrrrrbís    *  z_Unparser._function_helpercCs| d|¡dS)Nzfor ©Ú _for_helperrrrrÚ visit_Forüsz_Unparser.visit_ForcCs| d|¡dS)Nz async for rerrrrÚvisit_AsyncForÿsz_Unparser.visit_AsyncForcCs²| |¡| |j¡| d¡| |j¡|j| |¡d��| |j¡Wdƒn1s`0Y|jr®| d¡| ¡�| |j¡Wdƒn1s¤0YdS)Nú in rrP) rÿrr'rúròrrrErS)rœrÿrrrrrfs    *  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 rP) rÿrr@rrErSr9r ZIfrrrrÚvisit_Ifs   *$    ,  z_Unparser.visit_IfcCs’| d¡| |j¡| ¡�| |j¡Wdƒn1s@0Y|jrŽ| d¡| ¡�| |j¡Wdƒn1s„0YdS)Nzwhile rP)rÿrr@rrErSrrrrÚ 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©rÿrörr£rrrErrr®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..rrlrrr®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‹)rqrrÚ escape_char<s  z2_Unparser._str_literal_helper..escape_charrJrIcSsg|]}|tvr|‘qSr)Ú _MULTI_QUOTES©rNÚqrrrÚ IrSz1_Unparser._str_literal_helper..csg|]}|ˆvr|‘qSrrrw©Úescaped_stringrrryJrSc3s|]}ˆd|vr|VqdSrMrrw)ÚstringrrrRPrSz0_Unparser._str_literal_helper..rrHr cs|dˆdkS)Nrr r)rxrzrrrûTrSz/_Unparser._str_literal_helper..)r¼rr)r\r.r]rÕÚsort)rœr|rprqruZpossible_quotesZquoter)rqr{r|rÚ_str_literal_helper6s z_Unparser._str_literal_helper©rpcCs4|j||d�\}}|d}| |›|›|›�¡dS)Nrr)r~rú)rœr|rpÚ 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_rorJr)rúrìÚ_fstring_JoinedStrrr�rr;rVr!r[rXr r Ú _ALL_QUOTESr~r\) rœrrr"ÚmethZ new_bufferrpZ 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ërfrrz5Unable 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"rvrrrrr©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ƒn1sD0YdSr rŸ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Šr3)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 riú 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ÕrEr@rrúrSrrrrÚ 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©Nr3)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_UnaryOprrYú/ú%ú<<ú>>ú|ú^ú&ú//r²) r>r?ZMultZMatMultZDivZModZLShiftZRShiftZBitOrZBitXorZBitAndZFloorDivZPow) r¹r˜rrYrÀ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º) r1r'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Úor^rrrÚ 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]r^rrrÚ 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úÚargr4rrrrrÚ 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, /rr3r²)Ú posonlyargsr6r9ÚdefaultsÚ enumerater=rúrÚvarargÚ kwonlyargsrår4Ú 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 r3)rrÓrØrúrr6rrErrrrÚ visit_Lambdas    z_Unparser.visit_LambdacCs&| |j¡|jr"| d|j¡dS©NrW)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ýrÿrúrÚpropertyrrrr r rrrrrrrŸrr!r%r&r(r*r-r0r2r5r7r:r<r>r?rBrDrErGrIrJrNrUrXr_rcrdrbrgrhrfrjrkrmrnr„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¿r1râ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$srþcCsä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Úchoicesrz--no-type-commentsTZ store_falsez)don't add information about type comments)rÚactionrz-az--include-attributesÚ store_truez:include attributes such as line numbers and column offsets)rrz-iz--indentrLz'indentation of nodes (number of spaces))r!rr)r )rerG)ÚargparseÚArgumentParserÚ add_argumentZFileTyper#Ú 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_QUOTESrvr„rêrþrr[rrrrÚsšÿ 8C#    %:<       ûÿø