
c'oTw
              
   @   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 Gd d   d e j  Z d S)#z
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
   )FeatureFeatures    )
fixer_base
memoryview4power < 'memoryview' trailer < '(' any* ')' > any* >2.7numbersimport_from< 'from' 'numbers' 'import' any* > |
           import_name< 'import' ('numbers' dotted_as_names< any* 'numbers' any* >) >2.6abcyimport_name< 'import' ('abc' dotted_as_names< any* 'abc' any* >) > |
           import_from< 'from' 'abc' 'import' any* >iovimport_name< 'import' ('io' dotted_as_names< any* 'io' any* >) > |
           import_from< 'from' 'io' 'import' any* >bin+power< 'bin' trailer< '(' any* ')' > any* >
formatting<power< any trailer< '.' 'format' > trailer< '(' any* ')' > >nonlocalglobal_stmt< 'nonlocal' any* >3.0with_tracebacktrailer< '.' 'with_traceback' >c                   s_   e  Z d  Z d Z e   Z e d d   e D  Z e j	 Z	   f d d   Z
 d d   Z   S)FixFeatures	   c             C   s+   g  |  ]! \ } } } t  | | |   q S )r   ).0namepatternversionr   r   B/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_features.py
<listcomp>;   s   	zFixFeatures.<listcomp>c                s<   t  t |   j |  } y | d =Wn t k
 r7 Yn X| S)Nnode)superr   match	Exception)selfr"   Zto_ret)	__class__r   r    r$   @   s    zFixFeatures.matchc             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)N3reason)features_warnedfeaturesr   Zcannot_convertZwarningZmessage_textadd)r&   r"   ZresultsZfeature_nameZcurr_featureZfailr   r   r    	transformK   s    	zFixFeatures.transform)__name__
__module____qualname__Z	run_ordersetr*   r   FEATURESr+   ZPATTERNr$   r-   r   r   )r'   r    r   3   s   		r   N)z
memoryviewr   r   )r	   r
   r   )zabcr   r   )zior   r   )zbinr   r   )r   r   r   )znonlocalr   r   )zwith_tracebackr   r   )	__doc__Zfeature_baser   r   Zlib2to3r   r2   ZBaseFixr   r   r   r   r    <module>   s6                   	