3 jf @sjdZddlmZddlmZmZmZmZmZm Z ddl m Z ddl m Z mZddZGdd d ejZd S) zn Fixer for (metaclass=X) -> __metaclass__ = X Some semantics (see PEP 3115) may be altered in the translation.) fixer_base)NamesymsNodeLeafNewline find_root)token) indentationsuitifyc Csd}x|jD]}|j}|jtjkrd|dttjdkrb|dttjdkrb|drb|g|}Pq|jtjkrx|jD]}|rP|jtj kr|}qxt|t krxd}}}xX|jD]N} | ttjdkr| }q|r| ttjdkr| }q|o|r| }||||f}PqWqxWqW|S)Nr metaclass=) childrentyperZargumentrr NAMEEQUALZarglistCOMMAr) parentresultsnodeZkidschildcommametaequalnameargrC/tmp/pip-build-s1i5078x/future/libpasteurize/fixes/fix_metaclass.py has_metaclass s6         r c@seZdZdZddZdS) FixMetaclassz classdef c Cst|}|sdSx|D] }|jqWttjd}ttjddd}|}d|_ttj |||g}t |x||j D]r} | j tj krnx`| j D]V} | j tjkr| j j| d} ttj| j} | j| | | j| t| j| |PqWqnWdS)NZ __metaclass__r )prefixr )r removerr rrr#rrZatomr rrZsuiteINDENTindexvalueZ insert_childr) selfrrZ meta_resultsrtargetrrZ stmt_nodeitemstmtlocidentrrr transform5s*         zFixMetaclass.transformN)__name__ __module__ __qualname__ZPATTERNr.rrrrr!/sr!N)__doc__Zlib2to3rZlib2to3.fixer_utilrrrrrrZlib2to3.pygramr Zlibfuturize.fixer_utilr r r ZBaseFixr!rrrrs    $