File: //usr/lib/python3/dist-packages/libpasteurize/fixes/__pycache__/fix_features.cpython-38.pyc
U
,�]s
� @ sJ d Z ddlmZmZ ddlmZ ddddd d
ddgZG d
d� dej�ZdS )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)�
memoryviewz4power < 'memoryview' trailer < '(' any* ')' > any* >z2.7)Znumbersz�import_from< 'from' 'numbers' 'import' any* > |
import_name< 'import' ('numbers' dotted_as_names< any* 'numbers' any* >) >�2.6)�abczyimport_name< 'import' ('abc' dotted_as_names< any* 'abc' any* >) > |
import_from< 'from' 'abc' 'import' any* >r )�iozvimport_name< 'import' ('io' dotted_as_names< any* 'io' any* >) > |
import_from< 'from' 'io' 'import' any* >r )�binz+power< 'bin' trailer< '(' any* ')' > any* >r )Z
formattingz<power< any trailer< '.' 'format' > trailer< '(' any* ')' > >r )�nonlocalzglobal_stmt< 'nonlocal' any* >�3.0)�with_tracebackztrailer< '.' 'with_traceback' >r c sF e Zd ZdZe� Zedd� eD ��Zej Z � fdd�Z
dd� Z� ZS )�FixFeatures� c C s g | ]\}}}t |||��qS � )r )�.0�name�pattern�versionr r �B/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_features.py�
<listcomp>; s �zFixFeatures.<listcomp>c s4 t t| ��|�}z
|d= W n tk
r. Y nX |S )N�node)�superr �match� Exception)�selfr Zto_ret�� __class__r r r @ s
zFixFeatures.matchc C sZ |D ]P}|| j krqq| j| }|jdkr2| j}n| j}|||�� d� | j �|� qd S )N�3)�reason)�features_warned�featuresr Zcannot_convertZwarningZmessage_text�add)r r ZresultsZfeature_nameZcurr_featureZfailr r r � transformK s
zFixFeatures.transform)
�__name__�
__module__�__qualname__Z run_order�setr r �FEATURESr! ZPATTERNr r# �
__classcell__r r r r r 3 s �r N) �__doc__Zfeature_baser r Zlib2to3r r( ZBaseFixr r r r r �<module> s �*