o
    NK&h                     @   s   d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 ddlmZ e
dZG dd	 d	ee eeeef Zd
e	deeeef f de	dee f fddZdS )    )	Coroutine	Generator)AbstractAsyncContextManager)wraps)AnyCallableTypeVar   )Cursor_Tc                   @   sx   e Zd ZdZdeeeef fddZdddZddd	d
Z	dddZ
deedef fddZdefddZdddZdS )Result_coro_objcoroc                 C   s   || _ |  d S N)r   )selfr    r   D/var/www/html/venv/lib/python3.10/site-packages/aiosqlite/context.py__init__   s   zResult.__init__returnNc                 C   s   | j |S r   )r   send)r   valuer   r   r   r      s   zResult.sendc                 C   s:   |d u r
| j |S |d u r| j ||S | j |||S r   )r   throw)r   typvaltbr   r   r   r      s
   zResult.throwc                 C   
   | j  S r   )r   closer   r   r   r   r   "      
zResult.closec                 C   r   r   )r   	__await__r   r   r   r   r!   %   r    zResult.__await__c                    s   | j I d H | _| jS r   r   r   r   r   r   
__aenter__(   s   zResult.__aenter__c                    s&   t | jtr| j I d H  d S d S r   )
isinstancer   r
   r   )r   exc_typeexcr   r   r   r   	__aexit__,   s   zResult.__aexit__)r   N)NN)__name__
__module____qualname__	__slots__r   r   r   r   r   r   r   r   r!   r"   r&   r   r   r   r   r      s    

	r   method.r   c                    s"   t  dtt f fdd}|S )Nr   c                    s   t  | g|R i |S r   )r   )r   argskwargsr+   r   r   wrapper4   s   zcontextmanager.<locals>.wrapper)r   r   r   )r+   r/   r   r.   r   contextmanager1   s   r0   N)collections.abcr   r   
contextlibr   	functoolsr   typingr   r   r   cursorr
   r   r   r0   r   r   r   r   <module>   s    "