a
´i ã @ sr d dl mZ d dlmZ d dlmZmZmZ dd„ Zdd„ Z dd „ Z
d
d„ Zdd
„ Zdd„ Z
G dd„ dejƒZdS )é )Ú
fixer_base)Útoken)ÚsymsÚNodeÚLeafc C sz | j D ]n}|jtjkr"t|ƒ S |jtjkr|j r|j d }|jtjkr|j r|j d }t|tƒr|j dkr dS qdS )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 c C s | j D ]}|jtjkr d S qt| j ƒD ]\}}|jtjkr( qJq(tdƒ‚ttjg ƒ}| j |d d … rŽ| j |d }| |
¡ ¡ | ¡ qV| |¡ |}d S )NzNo class suite and no ':'!é )r r
r r Ú enumerater ÚCOLONÚ
ValueErrorr Úappend_childÚcloneÚremove)Úcls_noder Úir Ú move_noder r r Úfixup_parse_tree- s
r c
C s² t |jƒD ]\}}|jtjkr
q(q
d S | ¡ ttjg ƒ}ttj |gƒ}|j|d … rz|j| }|
| ¡ ¡ | ¡ qJ| ||¡ |jd jd }|jd jd } | j
|_
d S )Nr )r r r
r ÚSEMIr r r r r
r r Úinsert_childÚprefix)
r r Z stmt_nodeZsemi_indr Znew_exprZnew_stmtr Z new_leaf1Z old_leaf1r r r Úfixup_simple_stmtG s
r$ c C s* | j r&| j d jtjkr&| j d ¡ d S )Néÿÿÿÿ)r r
r ÚNEWLINEr )r r r r Úremove_trailing_newline_ s r' c c s¬ | j D ]}|jtjkr q$qtdƒ‚tt|j ƒƒD ]t\}}|jtjkr2|j r2|j d }|jtjkr2|j r2|j d }t |t
ƒr2|jdkr2t|||ƒ t
|ƒ |||fV q2d S )NzNo class suite!r r )r r
r r r Úlistr r
r r r r r$ r' )r r r Zsimple_noder Z left_noder r r Ú
find_metasd s
ÿr) c C sz | j d d d… }|r,| ¡ }|jtjkrq,q|rv| ¡ }t|tƒr^|jtjkr^|jrZd|_d S | |j d d d… ¡ q,d S )Nr% Ú )
r Úpopr
r ÚINDENTr r ÚDEDENTr# Úextend)r Zkidsr r r r Úfixup_indent{ s r/ c @ s e Zd ZdZdZdd„ ZdS )ÚFixMetaclassTz
classdef