
	Q[c        
   @   sg   d  Z  d d l m Z m Z d d l m Z d d d d d d  d! d" g Z d e j f d     YZ d S(#   u   
Warn about features that are not present in Python 2.5, giving a message that
points to the earliest version of Python 2.x (or 3.x, if none) that supports it
i   (   t   Featuret   Featuresi(   t
   fixer_baseu
   memoryviewu4   power < 'memoryview' trailer < '(' any* ')' > any* >u   2.7u   numbersu   import_from< 'from' 'numbers' 'import' any* > |
           import_name< 'import' ('numbers' dotted_as_names< any* 'numbers' any* >) >u   2.6u   abcuy   import_name< 'import' ('abc' dotted_as_names< any* 'abc' any* >) > |
           import_from< 'from' 'abc' 'import' any* >u   iouv   import_name< 'import' ('io' dotted_as_names< any* 'io' any* >) > |
           import_from< 'from' 'io' 'import' any* >u   binu+   power< 'bin' trailer< '(' any* ')' > any* >u
   formattingu<   power< any trailer< '.' 'format' > trailer< '(' any* ')' > >u   nonlocalu   global_stmt< 'nonlocal' any* >u   3.0u   with_tracebacku   trailer< '.' 'with_traceback' >t   FixFeaturesc           B   sf   e  Z d  Z e   Z e g  e D]! \ Z Z Z	 e
 e e e	  ^ q  Z e j Z d   Z d   Z RS(   i	   c         C   s;   t  t |   j |  } y | d =Wn t k
 r6 n X| S(   Nu   node(   t   superR   t   matcht	   Exception(   t   selft   nodet   to_ret(    (    s?   lib/python2.7/site-packages/libpasteurize/fixes/fix_features.pyR   @   s    c         C   s   xz | D]r } | |  j  k r" q q |  j | } | j d k rJ |  j } n	 |  j } | | d | j   |  j  j |  q Wd  S(   Nu   3t   reason(   t   features_warnedt   featurest   versiont   cannot_convertt   warningt   message_textt   add(   R   R   t   resultst   feature_namet   curr_featuret   fail(    (    s?   lib/python2.7/site-packages/libpasteurize/fixes/fix_features.pyt	   transformK   s    	(   t   __name__t
   __module__t	   run_ordert   setR   R   t   FEATURESt   namet   patternR   R    R   t   PATTERNR   R   (    (    (    s?   lib/python2.7/site-packages/libpasteurize/fixes/fix_features.pyR   3   s   	.		N(   u
   memoryviewu4   power < 'memoryview' trailer < '(' any* ')' > any* >u   2.7(   u   numbersu   import_from< 'from' 'numbers' 'import' any* > |
           import_name< 'import' ('numbers' dotted_as_names< any* 'numbers' any* >) >u   2.6(   u   abcuy   import_name< 'import' ('abc' dotted_as_names< any* 'abc' any* >) > |
           import_from< 'from' 'abc' 'import' any* >u   2.6(   u   iouv   import_name< 'import' ('io' dotted_as_names< any* 'io' any* >) > |
           import_from< 'from' 'io' 'import' any* >u   2.6(   u   binu+   power< 'bin' trailer< '(' any* ')' > any* >u   2.6(   u
   formattingu<   power< any trailer< '.' 'format' > trailer< '(' any* ')' > >u   2.6(   u   nonlocalu   global_stmt< 'nonlocal' any* >u   3.0(   u   with_tracebacku   trailer< '.' 'with_traceback' >u   3.0(	   t   __doc__t   feature_baseR    R   t   lib2to3R   R   t   BaseFixR   (    (    (    s?   lib/python2.7/site-packages/libpasteurize/fixes/fix_features.pyt   <module>   s6                   	