
    4pf                     ~    d Z ddlmZ ddlmZmZmZmZmZm	Z	 ddl
mZ ddlmZmZ d Z G d dej                  Zd	S )
zn
Fixer for (metaclass=X) -> __metaclass__ = X
Some semantics (see PEP 3115) may be altered in the translation.    )
fixer_base)NamesymsNodeLeafNewline	find_root)token)indentationsuitifyc                 v   d }| j         D ]-}|j         }|j        t          j        k    rY|d         t	          t
          j        d          k    r4|d         t	          t
          j        d          k    r|d         r|g|z   } nx|j        t          j        k    r|j         D ]}|r n|j        t
          j	        k    r|}t          |          t          k    rbd x}x}}|j         D ]T}	|	t	          t
          j        d          k    r|	}#|r!|	t	          t
          j        d          k    r|	}F|r|r
|	}||||f} nU/|S )Nr   	metaclass   =   )childrentyper   argumentr   r
   NAMEEQUALarglistCOMMAr   )
parentresultsnodekidschildcommametaequalnameargs
             a/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/libpasteurize/fixes/fix_metaclass.pyhas_metaclassr$      sh   G " "}9%%Aw$uz<8888Q4T2222Q 3  &4-Y$,&&  " "!EE:,,!EE%[[D((*..D.54$~ " "$uz<"@"@@@#&DD! "cT%+t-D-D&D&D$'EE! "e "#&D',dE4&@G!EN    c                       e Zd ZdZd ZdS )FixMetaclassz
    classdef<any*>
    c                    t          |          }|sd S |D ]}|                                 t          t          j        d          }t          t          j        dd          }|}d|_        t          t          j	        |||g          }t          |           |j        D ]}	|	j        t          j        k    r|	j        D ]}
|
j        t          j        k    r|	j                            |
          dz   }t          t          j        |
j                  }|	                    ||           |	                    |t%                                 |	                    ||            nd S )N__metaclass__r    )prefixr   )r$   remover   r
   r   r   r+   r   r   atomr   r   r   suiteINDENTindexvalueinsert_childr   )selfr   r   meta_resultsr   targetr    r!   	stmt_nodeitemstmtlocidents                r#   	transformzFixMetaclass.transform5   sX   $T**#VV  	 	DKKMMMMej"233U[$t444VUD$9::	M 	 	DyDJ&& M 
 
DyEL00 #m11$77!; $U\4: > >))#u555))#wyy999))#y999 1	 	r%   N)__name__
__module____qualname__PATTERNr;    r%   r#   r'   r'   /   s*        G    r%   r'   N)__doc__lib2to3r   lib2to3.fixer_utilr   r   r   r   r   r	   lib2to3.pygramr
   libfuturize.fixer_utilr   r   r$   BaseFixr'   r@   r%   r#   <module>rG      s   D D       I I I I I I I I I I I I I I I I             7 7 7 7 7 7 7 7! ! !H    :%     r%   