o
    DDi                     @   sH   d dl Zd dlmZ d dlmZ d dlmZm	Z	m
Z
 G dd deZdS )    N)VisitorBasedCodemodCommand)QualifiedNameQualifiedNameProviderQualifiedNameSourcec                   @   s<   e Zd ZU dZeed< efZdej	dej	dej
fddZdS )	FixVariadicCallableCommmandzaFix incorrect variadic callable type annotations from `Callable[[...], T]` to `Callable[..., T]``DESCRIPTIONoriginal_nodeupdated_nodereturnc              
   C   s   t | |tdtjdrGt|jdko-t|jd tj	tj
tjtt gddd}|rGt|j}t	t
t |d< |j|dS |S )Nztyping.Callable)namesource   r   )elements)value)slice)r   has_namer   r   IMPORTlenr   mmatchesSubscriptElementIndexListElementEllipsislistcstwith_changes)selfr   r	   node_matchesslices r!   f/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/codemod/commands/fix_variadic_callable.pyleave_Subscript   s    
z+FixVariadicCallableCommmand.leave_SubscriptN)__name__
__module____qualname__r   str__annotations__r   METADATA_DEPENDENCIESr   	SubscriptBaseExpressionr#   r!   r!   r!   r"   r      s   
 
r   )libcstr   libcst.matchersmatchersr   libcst.codemodr   libcst.metadatar   r   r   r   r!   r!   r!   r"   <module>   s
   