U
if @ sr 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 sz | j D ]n}|jtjkr"t| 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 @/opt/alt/python38/lib64/python3.8/lib2to3/fixes/fix_metaclass.pyr s
r c C s | j D ]}|jtjkr d S qt| j D ]\}}|jtjkr( qJq(tdttjg }| j |d d r| j |d }| |
| qV| | |}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
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_childprefix)
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$qtdtt|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|tr^|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