Your IP : 18.117.192.205


Current Path : /opt/alt/python39/lib64/python3.9/lib2to3/fixes/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/lib2to3/fixes/__pycache__/fix_metaclass.cpython-39.opt-2.pyc

a

R�f �@srddlmZddlmZddlmZmZmZdd�Zdd�Z	dd	�Z
d
d�Zdd
�Zdd�Z
Gdd�dej�ZdS)�)�
fixer_base)�token)�syms�Node�LeafcCsz|jD]n}|jtjkr"t|�S|jtjkr|jr|jd}|jtjkr|jr|jd}t|t�r|j	dkrdSqdS)N��
__metaclass__TF)
�children�typer�suite�
has_metaclass�simple_stmt�	expr_stmt�
isinstancer�value)�parent�node�	expr_nodeZ	left_side�r�@/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_metaclass.pyrs



�rcCs�|jD]}|jtjkrdSqt|j�D]\}}|jtjkr(qJq(td��ttjg�}|j|dd�r�|j|d}|�	|�
��|��qV|�	|�|}dS)NzNo class suite and no ':'!�)r	r
rr�	enumerater�COLON�
ValueErrorr�append_child�clone�remove)�cls_noder�ir�	move_noderrr�fixup_parse_tree-s


r c
Cs�t|j�D]\}}|jtjkr
q(q
dS|��ttjg�}ttj	|g�}|j|d�rz|j|}|�
|���|��qJ|�||�|jdjd}|jdjd}	|	j
|_
dS)Nr)rr	r
r�SEMIrrrrr
rr�insert_child�prefix)
rrZ	stmt_nodeZsemi_indrZnew_exprZnew_stmtrZ	new_leaf1Z	old_leaf1rrr�fixup_simple_stmtGs

r$cCs*|jr&|jdjtjkr&|jd��dS)N���)r	r
r�NEWLINEr)rrrr�remove_trailing_newline_sr'ccs�|jD]}|jtjkrq$qtd��tt|j��D]t\}}|jtjkr2|jr2|jd}|jtjkr2|jr2|jd}t	|t
�r2|jdkr2t|||�t
|�|||fVq2dS)NzNo class suite!rr)r	r
rrr�listrr
rrrrr$r')rrrZsimple_noderZ	left_noderrr�
find_metasds



�r)cCsz|jddd�}|r,|��}|jtjkrq,q|rv|��}t|t�r^|jtjkr^|jrZd|_dS|�	|jddd��q,dS)Nr%�)
r	�popr
r�INDENTrr�DEDENTr#�extend)rZkidsrrrr�fixup_indent{sr/c@seZdZdZdZdd�ZdS)�FixMetaclassTz
    classdef<any*>
    cCs8t|�sdSt|�d}t|�D]\}}}|}|��q |jdj}t|j�dkr�|jdjtjkrp|jd}n(|jd�	�}	t
tj|	g�}|�d|�n�t|j�dkr�t
tjg�}|�d|�nZt|j�dk�rt
tjg�}|�dt
tjd��|�d|�|�dt
tjd��ntd	��|jdjd}
d
|
_|
j}|j�rZ|�t
tjd��d|
_nd
|
_|jd}d
|jd_d
|jd_|�|�t|�|j�s�|��t
|d�}
||
_|�|
�|�t
tjd��nbt|j�dk�r4|jdjtjk�r4|jdjtjk�r4t
|d�}
|�d|
�|�dt
tjd��dS)Nr����r�)�(zUnexpected class definition�	metaclass�,� r*r�pass�
���r%)rr r)rr	r
�lenr�arglistrrZ	set_childr"rr�RPAR�LPARrrr#r�COMMAr/r&r,r-)�selfrZresultsZlast_metaclassrrZstmtZ	text_typer>rZmeta_txtZorig_meta_prefixrZ	pass_leafrrr�	transform�sb




��
zFixMetaclass.transformN)�__name__�
__module__�__qualname__Z
BM_compatibleZPATTERNrCrrrrr0�sr0N)r*rZpygramrZ
fixer_utilrrrrr r$r'r)r/ZBaseFixr0rrrr�<module>s

?>