MINI MINI MANI MO
3
\ @ 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 sx xr| j D ]h}|jtjkr t|S |jtjkr|j r|j d }|jtjkr|j r|j d }t|tr|j dkrdS qW dS )N
__metaclass__TF)
childrentyper suite
has_metaclasssimple_stmt expr_stmt
isinstancer value)parentnode expr_nodeZ left_side r 3/usr/lib64/python3.6/lib2to3/fixes/fix_metaclass.pyr s
r c C s x| j D ]}|jtjkrd S qW x,t| j D ]\}}|jtjkr,P q,W tdttjg }x:| j |d d r| j |d }|j |j
|j q\W | j | |}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 x(t |jD ]\}}|jtjkrP qW d S |j ttjg }ttj |g}x2|j|d r~|j| }|j
|j |j qNW | j|| |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 j d S )Nr r% )r r
r NEWLINEr )r r r r remove_trailing_newline_ s r' c c s x$| j D ]}|jtjkrP qW tdxtt|j D ]t\}}|jtjkr6|j r6|j d }|jtjkr6|j r6|j d }t |t
r6|jdkr6t||| t
| |||fV q6W d 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 }x|r.|j }|jtjkrP qW xL|r||j }t|trd|jtjkrd|jr`d|_d S |j |j d d d q2W d S )Nr r% r% )
r popr
r INDENTr r DEDENTr# extend)r Zkidsr r r r fixup_indent{ s r/ c @ s e Zd ZdZdZdd ZdS )FixMetaclassTz
classdef<any*>
c C s< t |sd S t| d }x"t|D ]\}}}|}|j q"W |jd j}t|jdkr|jd jtjkrt|jd }n(|jd j } t
tj| g}|jd| nt|jdkrt
tjg }|jd| nZt|jdkrt
tjg }|jdt
tjd |jd| |jdt
tjd ntd |jd jd }
d
|
_|
j}|jr^|jt
tjd d|
_nd
|
_|jd }d
|jd _d
|jd _|j| t| |js|j t
|d}
||
_|j|
|jt
tjd nbt|jdkr8|jd jtjkr8|jd jtjkr8t
|d}
|jd|
|jdt
tjd d S )Nr r )(zUnexpected class definition metaclass, r* r pass
r% r% r% )r r r) r r r
lenr arglistr r Z set_childr"