File: //usr/lib/python3.6/site-packages/libpasteurize/fixes/__pycache__/fix_annotations.cpython-36.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 rR|jjtjks2td��| j|td� |jj� |j� |dkr^dS |jt j
kr�x`|jD ],}|jt jkrr| j|td� |j
t|�� qrW n(|jt jkr�| j|td� |j
t|�� dS )zK
This just strips annotations from the funcdef completely.
�params�retNzInvalid return annotation)r )�getZprev_sibling�typer �RARROW�AssertionErrorr �warning_text�remover Z
typedargslistr Ztname�replacer )r
r �resultsr r Zparamr r r � transform s"