grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´i ã@srddlmZddlmZddlmZmZmZdd„Zdd„Z dd „Z d d „Z d d „Z dd„Z Gdd„dejƒZdS)é)Ú fixer_base)Útoken)ÚsymsÚNodeÚLeafcCsz|jD]n}|jtjkr"t|ƒS|jtjkr|jr|jd}|jtjkr|jr|jd}t|tƒr|j dkrdSqdS)NéÚ __metaclass__TF) ÚchildrenÚtyperÚsuiteÚ has_metaclassÚ simple_stmtÚ expr_stmtÚ isinstancerÚvalue)ÚparentÚnodeÚ expr_nodeZ left_side©rú3/usr/lib64/python3.9/lib2to3/fixes/fix_metaclass.pyr s      ÿr cCs |jD]}|jtjkrdSqt|jƒD]\}}|jtjkr(qJq(tdƒ‚ttjgƒ}|j|dd…rŽ|j|d}|  |  ¡¡|  ¡qV|  |¡|}dS)NzNo class suite and no ':'!é) r r rr Ú enumeraterÚCOLONÚ ValueErrorrÚ append_childÚcloneÚremove)Úcls_noderÚir Ú move_noderrrÚfixup_parse_tree-s      r c Cs²t|jƒD]\}}|jtjkr q(q dS| ¡ttjgƒ}ttj |gƒ}|j|d…rz|j|}|  |  ¡¡| ¡qJ|  ||¡|jdjd}|jdjd} | j |_ dS)Nr)rr r rÚSEMIrrrrr rrÚ insert_childÚprefix) rrZ stmt_nodeZsemi_indrZnew_exprZnew_stmtrZ new_leaf1Z old_leaf1rrrÚfixup_simple_stmtGs     r$cCs*|jr&|jdjtjkr&|jd ¡dS)Néÿÿÿÿ)r r rÚNEWLINEr)rrrrÚremove_trailing_newline_sr'ccs¬|jD]}|jtjkrq$qtdƒ‚tt|jƒƒD]t\}}|jtjkr2|jr2|jd}|jtjkr2|jr2|jd}t |t ƒr2|j dkr2t |||ƒt |ƒ|||fVq2dS)NzNo class suite!rr)r r rr rÚlistrr rrrrr$r')rrrZ simple_noderZ left_noderrrÚ find_metasds     ÿ r)cCsz|jddd…}|r,| ¡}|jtjkrq,q|rv| ¡}t|tƒr^|jtjkr^|jrZd|_dS|  |jddd…¡q,dS)Nr%Ú) r Úpopr rÚINDENTrrÚDEDENTr#Úextend)r ZkidsrrrrÚ fixup_indent{s r/c@seZdZdZdZdd„ZdS)Ú FixMetaclassTz classdef cCs8t|ƒs dSt|ƒd}t|ƒD]\}}}|}| ¡q |jdj}t|jƒdkrš|jdjtjkrp|jd}n(|jd  ¡} t tj| gƒ}|  d|¡n‚t|jƒdkrÂt tjgƒ}|  d|¡nZt|jƒdk�rt tjgƒ}|  dt tjdƒ¡|  d|¡|  dt tjdƒ¡ntd ƒ‚|jdjd} d | _| j} |j�rZ| t tjd ƒ¡d | _nd | _|jd} d | jd_d | jd_| |¡t|ƒ|j�sÒ| ¡t |dƒ} | | _| | ¡| t tjdƒ¡nbt|jƒdk�r4|jdjtjk�r4|jdjtjk�r4t |dƒ} |  d| ¡|  dt tjdƒ¡dS)Nréééérú)ú(zUnexpected class definitionÚ metaclassú,ú r*rÚpassÚ éþÿÿÿr%)r r r)rr r ÚlenrÚarglistrrZ set_childr"rrÚRPARÚLPARrrr#rÚCOMMAr/r&r,r-)ÚselfrÚresultsZlast_metaclassr rZstmtZ text_typer>rZmeta_txtZorig_meta_prefixrZ pass_leafrrrÚ transform˜sb            ÿþ  zFixMetaclass.transformN)Ú__name__Ú __module__Ú __qualname__Z BM_compatibleZPATTERNrDrrrrr0‘sr0N)r*rZpygramrZ fixer_utilrrrr r r$r'r)r/ZBaseFixr0rrrrÚs