File: //lib/python3.6/site-packages/libpasteurize/fixes/__pycache__/fix_annotations.cpython-36.opt-1.pyc
3
�c- � @ sJ d Z ddlmZ ddlmZ ddlmZ dZdd� ZG dd � d ej �Z
d
S )z&
Fixer to remove function annotations
� )�
fixer_base)�token)�symsz)Removing function annotations completely.c C s
| j d S )Nr )�children)�node� r �%/usr/lib/python3.6/fix_annotations.py�param_without_annotations s r c @ s$ e Zd ZdZdd� ZdZdd� ZdS )�FixAnnotationsFc C s | j sd| _ | j||d� d S )NT)�reason)�warnedZwarning)�selfr r r r r � warn_once s zFixAnnotations.warn_oncezm
funcdef< 'def' any parameters< '(' [params=any] ')' > ['->' ret=any] ':' any* >
c C s� |j d�}|j d�}|dk r<| j|td� |jj� |j� |dkrHdS |jtjkr�x`|jD ],}|jtj kr\| j|td� |j
t|�� q\W n(|jtj kr�| j|td� |j
t|�� dS )zK
This just strips annotations from the funcdef completely.
�params�retN)r )�getr �warning_textZprev_sibling�remove�typer Z
typedargslistr Ztname�replacer )r
r �resultsr r Zparamr r r � transform s
zFixAnnotations.transformN)�__name__�
__module__�__qualname__r r ZPATTERNr r r r r r
s r
N)�__doc__Zlib2to3r Z
lib2to3.pgen2r Zlib2to3.fixer_utilr r r ZBaseFixr
r r r r �<module> s