B
¬.‰qø·ÝÞã @ 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 sx xr| j D ]h}|jtjkr t|ƒS |jtjkr|j r|j d }|jtjkr|j r|j d }t|tƒr|j dkrdS qW dS )Né Ú
__metaclass__TF)
ÚchildrenÚtyper ÚsuiteÚ
has_metaclassÚsimple_stmtÚ expr_stmtÚ
isinstancer Úvalue)ÚparentÚnodeÚ expr_nodeZ left_side© r ú@/opt/alt/python37/lib64/python3.7/lib2to3/fixes/fix_metaclass.pyr s
r c C s¨ x| j D ]}|jtjkrd S qW x,t| j ƒD ]\}}|jtjkr,P q,W tdƒ‚ttjg ƒ}x:| j |d d … r”| j |d }| |
¡ ¡ | ¡ q\W | |¡ |}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¸ x(t |jƒD ]\}}|jtjkrP qW d S | ¡ ttjg ƒ}ttj |gƒ}x2|j|d … r~|j| }|
| ¡ ¡ | ¡ qNW | ||¡ |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² x$| j D ]}|jtjkrP qW tdƒ‚x†tt|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.| ¡ }|jtjkrP qW xL|r|| ¡ }t|tƒrd|jtjkrd|jr`d|_d S | |j d d d… ¡ q2W 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