o
0i @ st d dl mZ d dlmZ d dlmZmZmZ dd Zdd Z dd Z
d
d Zdd
Zdd Z
G dd dejZdS ) )
fixer_base)token)symsNodeLeafc C s| | j D ]7}|jtjkrt| S |jtjkr;|j r;|j d }|jtjkr;|j r;|j d }t|tr;|j dkr; dS qdS )N
__metaclass__TF)
childrentyper suite
has_metaclasssimple_stmt expr_stmt
isinstancer value)parentnode expr_nodeZ left_side r B/opt/alt/python310/lib64/python3.10/lib2to3/fixes/fix_metaclass.pyr s
r c C s | j D ]}|jtjkr d S qt| j D ]\}}|jtjkr! nqtdttjg }| j |d d rP| j |d }| |
| | j |d d s5| | |}d S )NzNo class suite and no ':'! )r r
r r enumerater COLON
ValueErrorr append_childcloneremove)cls_noder ir move_noder r r fixup_parse_tree- s$
r c
C s t |jD ]\}}|jtjkr nqd S | ttjg }ttj |g}|j|d rD|j| }|
| | |j|d s-| || |jd jd }|jd jd } | j
|_
d S )Nr )r r r
r SEMIr r r r r
r r insert_childprefix)
r r Z stmt_nodeZsemi_indr Znew_exprZnew_stmtr Z new_leaf1Z old_leaf1r r r fixup_simple_stmtG s$
r$ c C s2 | j r| j d jtjkr| j d d S d S d S )N)r r
r NEWLINEr )r r r r remove_trailing_newline_ s r' c c s | j D ]
}|jtjkr nqtdtt|j D ]:\}}|jtjkrT|j rT|j d }|jtjkrT|j rT|j d }t |t
rT|jdkrTt||| t
| |||fV qd 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 s | j d d d }|r| }|jtjkrn|s|r@| }t|tr1|jtjkr1|jr/d|_d S | |j d d d |sd S 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