o
    DDi<                     @  s   d Z ddlmZ ddlZddlmZ ddlmZmZ ddl	m
Z ddlmZ dd	lmZ er4dd
lmZ edZG dd dZG dd deZdS )z.
Psycopg AsyncPipeline object implementation.
    )annotationsN)TracebackType)TYPE_CHECKINGAny   )errors)Self)BasePipeline)AsyncConnectionpsycopgc                   @  s    e Zd ZdddZdddZdS )
_DummyLockreturnNonec                      d S N selfr   r   P/var/www/Datamplify/venv/lib/python3.10/site-packages/psycopg/_pipeline_async.py
__aenter__   s   z_DummyLock.__aenter__exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonec                   r   r   r   )r   r   r   r   r   r   r   	__aexit__   s   z_DummyLock.__aexit__Nr   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname__r   r   r   r   r   r   r      s    
r   c                      sP   e Zd ZU dZdZded< dd fddZdddZdddZdddZ  Z	S )AsyncPipelinez0Handler for (async) connection in pipeline mode.r   AsyncConnection[Any]_connFconn_no_lockboolr   r   c                   s(   t  | |rt | _d S |j| _d S r   )super__init__r   lock_lock)r   r%   r&   	__class__r   r   r)   *   s   zAsyncPipeline.__init__c              
     s   z-| j 4 I dH  | j|  I dH  W d  I dH  W dS 1 I dH s'w   Y  W dS  tjy@ } z|dd}~ww )zkSync the pipeline, send any pending command and receive and process
        all available results.
        N)r+   r$   wait	_sync_gene_NO_TRACEBACKwith_traceback)r   exr   r   r   sync.   s   2
zAsyncPipeline.syncr   c              	     sX   | j 4 I d H  | j|  I d H  W d   I d H  | S 1 I d H s%w   Y  | S r   )r+   r$   r.   
_enter_genr   r   r   r   r   8   s   zAsyncPipeline.__aenter__r   r   r   r   r   r   c              
     s   z\z*| j 4 I d H  | j|  I d H  W d   I d H  n1 I d H s&w   Y  W n! tyM } z|r>td| | n|d W Y d }~nd }~ww W | | d S W | | d S | | w )Nz error ignored terminating %r: %s)	r+   r$   r.   	_exit_gen	Exceptionloggerwarningr2   _exit)r   r   r   r   exc2r   r   r   r   =   s"   (
zAsyncPipeline.__aexit__)F)r%   r#   r&   r'   r   r   r   )r   r   r   )
r   r    r!   __doc____annotations__r)   r4   r   r   __classcell__r   r   r,   r   r"   $   s   
 


r"   )r<   
__future__r   loggingtypesr   typingr   r    r   r0   _compatr   _pipeline_baser	   connection_asyncr
   	getLoggerr8   r   r"   r   r   r   r   <module>   s    
