o
    SDi                     @  sr   d dl mZ d dlZd dlmZ d dlmZ d dlmZ e	fZ
edZedd ed	D d
kZdddZdS )    )annotationsN)Callable)__version__)utilRETURNS_UNICODEc                 c  s    | ]}t |V  qd S N)int).0v r   T/var/www/Datamplify/venv/lib/python3.10/site-packages/snowflake/sqlalchemy/compat.py	<genexpr>   s    r   .)   r   r   positions_to_droptuplec                   s   d fdd}|S )zRemoves args at positions provided in tuple positions_to_drop.

    For example tuple (3, 5) will remove items at third and fifth position.
    Keep in mind that on class methods first postion is cls or self.
    fnr   c                   s   t   fdd}|S )Nc                    s.   | }t stfddt| D } |  d S )Nc                 3  s     | ]\}}| vr|V  qd S r   r   )r	   idxargr   r   r   r      s    zDargs_reducer.<locals>.fn_wrapper.<locals>.wrapper.<locals>.<genexpr>)IS_VERSION_20r   	enumerate)argsreduced_args)r   r   r   r   wrapper   s   z1args_reducer.<locals>.fn_wrapper.<locals>.wrapper)	functoolswraps)r   r   r   )r   r   
fn_wrapper   s   z args_reducer.<locals>.fn_wrapperN)r   r   r   )r   r   r   r   r   args_reducer   s   r   )r   r   )
__future__r   r   typingr   
sqlalchemyr   
SA_VERSIONr   strstring_typessymbolreturns_unicoder   splitr   r   r   r   r   r   <module>   s   
