
	Q[c           @   s   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 d e j f d     YZ d	 S(
   un   
Fixer for (metaclass=X) -> __metaclass__ = X
Some semantics (see PEP 3115) may be altered in the translation.i(   t
   fixer_base(   t   Namet   symst   Nodet   Leaft   Newlinet	   find_root(   t   token(   t   indentationt   suitifyc   
      C   s  d  } xw|  j D]l} | j } | j t j k r | d t t j d  k r|| d t t j d  k r|| d r|| g | } Pq|q | j t j	 k r x | j D] } | r Pn  | j t j
 k r | } q t |  t k r d  } } } x | j D]v }	 |	 t t j d  k r|	 } q | rF|	 t t j d  k rF|	 } q | r | r |	 } | | | | f } Pq q Wq q Wq q W| S(   Ni    u	   metaclassi   u   =i   (   t   Nonet   childrent   typeR   t   argumentR   R   t   NAMEt   EQUALt   arglistt   COMMAR   (
   t   parentt   resultst   nodet   kidst   childt   commat   metat   equalt   namet   arg(    (    s@   lib/python2.7/site-packages/libpasteurize/fixes/fix_metaclass.pyt   has_metaclass   s6    	
 			t   FixMetaclassc           B   s   e  Z d  Z d   Z RS(   u   
    classdef<any*>
    c         C   sD  t  |  } | s d  Sx | D] } | j   q Wt t j d  } t t j d d d } | } d | _ t t j	 | | | g  } t
 |  x | j D] }	 |	 j t j k r x |	 j D]z }
 |
 j t j k r |	 j j |
  d } t t j |
 j  } |	 j | |  |	 j | t    |	 j | |  Pq q Wq q Wd  S(   Nu   __metaclass__u   =t   prefixu    i   (   R   t   removeR   R   R   R   R   R   R   t   atomR	   R   R   t   suitet   INDENTt   indext   valuet   insert_childR   (   t   selfR   R   t   meta_resultsR   t   targetR   R   t	   stmt_nodet   itemt   stmtt   loct   ident(    (    s@   lib/python2.7/site-packages/libpasteurize/fixes/fix_metaclass.pyt	   transform5   s*     	
(   t   __name__t
   __module__t   PATTERNR.   (    (    (    s@   lib/python2.7/site-packages/libpasteurize/fixes/fix_metaclass.pyR   /   s   N(   t   __doc__t   lib2to3R    t   lib2to3.fixer_utilR   R   R   R   R   R   t   lib2to3.pygramR   t   libfuturize.fixer_utilR   R	   R   t   BaseFixR   (    (    (    s@   lib/python2.7/site-packages/libpasteurize/fixes/fix_metaclass.pyt   <module>   s   .	$