o ,]-@sJdZddlmZddlmZddlmZdZddZGdd d ej Z d S) z& Fixer to remove function annotations ) fixer_base)token)symsz)Removing function annotations completely.cCs |jdS)Nr)children)noderE/usr/lib/python3/dist-packages/libpasteurize/fixes/fix_annotations.pyparam_without_annotations s r c@s$eZdZdZddZdZddZdS)FixAnnotationsFcCs"|jsd|_|j||ddSdS)NTreason)warnedwarning)selfrr rrr warn_onceszFixAnnotations.warn_oncezm funcdef< 'def' any parameters< '(' [params=any] ')' > ['->' ret=any] ':' any* > cCs|d}|d}|dur)|jjtjksJd|j|td|j||dur/dS|jtj krQ|j D]}|jtj krN|j|td| t |q8dS|jtj krg|j|td| t |dSdS)zK This just strips annotations from the funcdef completely. paramsretNzInvalid return annotationr )get prev_siblingtyperRARROWr warning_textremover typedargslistrtnamereplacer )rrresultsrrparamrrr transforms&        zFixAnnotations.transformN)__name__ __module__ __qualname__r rPATTERNrrrrrr s  r N) __doc__lib2to3r lib2to3.pgen2rlib2to3.fixer_utilrrr BaseFixr rrrrs