
    4pf-                     ^    d Z ddlmZ ddlmZ ddlmZ dZd Z G d dej	                  Z
d	S )
z&
Fixer to remove function annotations
    )
fixer_base)token)symsz)Removing function annotations completely.c                     | j         d         S )Nr   )children)nodes    c/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/libpasteurize/fixes/fix_annotations.pyparam_without_annotationsr
      s    =    c                   "    e Zd ZdZd ZdZd ZdS )FixAnnotationsFc                 T    | j         s d| _         |                     ||           d S d S )NTreason)warnedwarning)selfr   r   s      r	   	warn_oncezFixAnnotations.warn_once   s9    { 	.DKLLfL-----	. 	.r   zm
              funcdef< 'def' any parameters< '(' [params=any] ')' > ['->' ret=any] ':' any* >
              c                    |                     d          }|                     d          }|m|j        j        t          j        k    s
J d            |                     |t                     |j                                         |                                 |dS |j        t          j	        k    r_|j
        D ]U}|j        t          j        k    r>|                     |t                     |                    t          |                     VdS |j        t          j        k    r@|                     |t                     |                    t          |                     dS dS )zK
        This just strips annotations from the funcdef completely.
        paramsretNzInvalid return annotationr   )getprev_siblingtyper   RARROWr   warning_textremover   typedargslistr   tnamereplacer
   )r   r   resultsr   r   params         r	   	transformzFixAnnotations.transform   sN    Y''kk&!!?#(EL888:V888NN4N555##%%%JJLLL>66;$,,, D D:++NN4N===MM";E"B"BCCCD D [DJ&&NN4N555NN4V<<===== '&r   N)__name__
__module____qualname__r   r   PATTERNr#    r   r	   r   r      s>        F. . .
G> > > > >r   r   N)__doc__lib2to3r   lib2to3.pgen2r   lib2to3.fixer_utilr   r   r
   BaseFixr   r(   r   r	   <module>r.      s                 # # # # # #;  "> "> "> "> ">Z' "> "> "> "> ">r   