
    	h'                       d Z ddlmZ ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ erddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  G d de          Z G d de          Z G d d          Z G d d          Z G d de          Z  G d  d!e          Z! G d" d#e!          Z"dS )$z?generic asyncio-adapted versions of DBAPI connection and cursor    )annotationsN)Any)AsyncIterator)Deque)Iterator)NoReturn)Optional)Sequence)TYPE_CHECKING   )AdaptedConnection)await_fallback)
await_only)Protocol)_DBAPICursorDescription)_DBAPIMultiExecuteParams)_DBAPISingleExecuteParams)DBAPIModule)Selfc                  :    e Zd ZdZddZdd	Zdd
ZddZddZdS )AsyncIODBAPIConnectionz^protocol representing an async adapted version of a
    :pep:`249` database connection.


    returnNonec                
   K   d S N selfs    j/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/sqlalchemy/connectors/asyncio.pycommitzAsyncIODBAPIConnection.commit/   
            argsr   kwargsAsyncIODBAPICursorc                    d S r   r   )r   r#   r$   s      r   cursorzAsyncIODBAPIConnection.cursor1         r"   c                
   K   d S r   r   r   s    r   rollbackzAsyncIODBAPIConnection.rollback3   r!   r"   keystrc                    d S r   r   r   r+   s     r   __getattr__z"AsyncIODBAPIConnection.__getattr__5   r(   r"   valuec                    d S r   r   )r   r+   r0   s      r   __setattr__z"AsyncIODBAPIConnection.__setattr__7   r(   r"   Nr   r   )r#   r   r$   r   r   r%   r+   r,   r   r   )r+   r,   r0   r   r   r   )	__name__
__module____qualname____doc__r    r'   r*   r/   r2   r   r"   r   r   r   %   sX          ('''JJJJ))))////<<<<<<r"   r   c                      e Zd ZU dZd'dZed(d            Zed)d            Zded	<   ded
<   d*dZ		 d+d,dZ
d-dZd.dZd/d0dZd1dZd2dZd3dZ	 d/d4d"Zd5d$Zd6d&ZdS )7r%   zZprotocol representing an async adapted version
    of a :pep:`249` database cursor.


    r   r   c                    d S r   r   r   s    r   
__aenter__zAsyncIODBAPICursor.__aenter__A   r(   r"   r   c                    dS )z(The description attribute of the Cursor.Nr   r   s    r   descriptionzAsyncIODBAPICursor.descriptionC   s	    
 	r"   intc                    d S r   r   r   s    r   rowcountzAsyncIODBAPICursor.rowcountJ   s    "sr"   	arraysize	lastrowidr   c                
   K   d S r   r   r   s    r   closezAsyncIODBAPICursor.closeQ   r!   r"   N	operation
parameters#Optional[_DBAPISingleExecuteParams]c                
   K   d S r   r   r   rE   rF   s      r   executezAsyncIODBAPICursor.executeS          cr"   r   c                
   K   d S r   r   rI   s      r   executemanyzAsyncIODBAPICursor.executemanyY   rK   r"   Optional[Any]c                
   K   d S r   r   r   s    r   fetchonezAsyncIODBAPICursor.fetchone_   r!   r"   .sizeOptional[int]Sequence[Any]c                
   K   d S r   r   r   rQ   s     r   	fetchmanyzAsyncIODBAPICursor.fetchmanya   r!   r"   c                
   K   d S r   r   r   s    r   fetchallzAsyncIODBAPICursor.fetchallc   r!   r"   sizesc                
   K   d S r   r   )r   rY   s     r   setinputsizesz AsyncIODBAPICursor.setinputsizese   r!   r"   columnc                    d S r   r   )r   rQ   r\   s      r   setoutputsizez AsyncIODBAPICursor.setoutputsizeg   r(   r"   procnamer,   c                
   K   d S r   r   )r   r_   rF   s      r   callproczAsyncIODBAPICursor.callproci   s      cr"   Optional[bool]c                
   K   d S r   r   r   s    r   nextsetzAsyncIODBAPICursor.nextsetm   r!   r"   AsyncIterator[Any]c                    d S r   r   r   s    r   	__aiter__zAsyncIODBAPICursor.__aiter__o   r(   r"   )r   r   )r   r   r   r>   r3   r   rE   r   rF   rG   r   r   )rE   r   rF   r   r   r   r   rN   ).rQ   rR   r   rS   r   rS   )rY   rS   r   r   )rQ   r   r\   r   r   r   )r_   r,   rF   rS   r   r   )r   rb   )r   re   )r5   r6   r7   r8   r;   propertyr=   r@   __annotations__rD   rJ   rM   rP   rV   rX   r[   r^   ra   rd   rg   r   r"   r   r%   r%   :   s)          %$$$   X """ X"NNNNNN&&&&
 ;?        3222NNNNN2222DDDD@@@@ :=     3222222222r"   r%   c                  V    e Zd Zer"ej        Zej        Zej        Zej        ZddZ	dS dS )AsyncAdapt_dbapi_moduler+   r,   r   r   c                    d S r   r   r.   s     r   r/   z#AsyncAdapt_dbapi_module.__getattr__y   r(   r"   Nr4   )
r5   r6   r7   r   r   ErrorOperationalErrorInterfaceErrorIntegrityErrorr/   r   r"   r   rp   rp   r   sO         4!&7$3$33333334 4r"   rp   c                  H   e Zd ZU dZdZded<   ded<   ded<   d	ed
<   d8dZd9dZd:dZe	d;d            Z
e	d<d            Ze	d<d            Zej        d=d            Ze	d<d            Zd>dZ	 d?d@d!ZdAd$Zd@d%ZdAd&Zd>d'ZdBd)ZdCd+ZdDd.ZdEd0ZdFd2Zd?dGd6ZdHd7ZdS )IAsyncAdapt_dbapi_cursorF)_adapt_connection_connectionawait__cursor_rowsr%   r{   AsyncAdapt_dbapi_connectionrx   r   ry   z
Deque[Any]r|   adapt_connectionc                    || _         |j        | _        |j        | _        |                     | j                  }|                     |          | _        | j        st          j                    | _	        d S d S r   )
rx   ry   rz   _make_new_cursor_aenter_cursorr{   server_sidecollectionsdequer|   )r   r~   r'   s      r   __init__z AsyncAdapt_dbapi_cursor.__init__   ss    !1+7&-&&t'788**622 	-$*,,DJJJ	- 	-r"   r'   r   c                P    |                      |                                          S r   )rz   r;   )r   r'   s     r   r   z&AsyncAdapt_dbapi_cursor._aenter_cursor   s     {{6,,..///r"   
connectionc                *    |                                 S r   )r'   )r   r   s     r   r   z(AsyncAdapt_dbapi_cursor._make_new_cursor   s       """r"   !Optional[_DBAPICursorDescription]c                    | j         j        S r   )r{   r=   r   s    r   r=   z#AsyncAdapt_dbapi_cursor.description   s    |''r"   r>   c                    | j         j        S r   )r{   r@   r   s    r   r@   z AsyncAdapt_dbapi_cursor.rowcount   s    |$$r"   c                    | j         j        S r   r{   rA   r   s    r   rA   z!AsyncAdapt_dbapi_cursor.arraysize       |%%r"   r0   r   c                    || j         _        d S r   r   )r   r0   s     r   rA   z!AsyncAdapt_dbapi_cursor.arraysize   s    !&r"   c                    | j         j        S r   )r{   rB   r   s    r   rB   z!AsyncAdapt_dbapi_cursor.lastrowid   r   r"   c                8    | j                                          d S r   )r|   clearr   s    r   rD   zAsyncAdapt_dbapi_cursor.close   s     	
r"   NrE   r   rF   rG   c                    	 |                      |                     ||                    S # t          $ r%}| j                            |           Y d }~d S d }~ww xY wr   )rz   _execute_async	Exceptionrx   _handle_exception)r   rE   rF   errors       r   rJ   zAsyncAdapt_dbapi_cursor.execute   sq    
	<;;t229jIIJJJ 	< 	< 	<"44U;;;;;;;;;	<   (+ 
AAAseq_of_parametersr   c                    	 |                      |                     ||                    S # t          $ r%}| j                            |           Y d }~d S d }~ww xY wr   )rz   _executemany_asyncr   rx   r   )r   rE   r   r   s       r   rM   z#AsyncAdapt_dbapi_cursor.executemany   s{    
	<;;''	3DEE    	< 	< 	<"44U;;;;;;;;;	<r   c                  K   | j         j        4 d {V  |!| j                            |           d {V }n!| j                            ||           d {V }| j        j        r=| j        s6t          j        | j                                         d {V           | _	        |cd d d           d {V  S # 1 d {V swxY w Y   d S r   )
rx   _execute_mutexr{   rJ   r=   r   r   r   rX   r|   )r   rE   rF   results       r   r   z&AsyncAdapt_dbapi_cursor._execute_async   sx      )8 	 	 	 	 	 	 	 	!#|33I>>>>>>>>#|33IzJJJJJJJJ|' N0@ N(.T\5J5J5L5L/L/L/L/L/L/LMM
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   BB77
CCc                   K   | j         j        4 d {V  | j                            ||           d {V cd d d           d {V  S # 1 d {V swxY w Y   d S r   )rx   r   r{   rM   )r   rE   r   s      r   r   z*AsyncAdapt_dbapi_cursor._executemany_async   s      
 )8 	P 	P 	P 	P 	P 	P 	P 	P11)=NOOOOOOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   !A		
AAc                   |                      | j                                                   | j        j        rL| j        sGt          j        |                      | j                                                            | _        d S d S d S r   )	rz   r{   rd   r=   r   r   r   rX   r|   r   s    r   rd   zAsyncAdapt_dbapi_cursor.nextset   s    DL((**+++<# 	D,< 	$*DL113344 DJJJ	 	 	 	r"   
inputsizesc                F    |                       | j        j        |           S r   )rz   r{   r[   )r   r   s     r   r[   z%AsyncAdapt_dbapi_cursor.setinputsizes   s#    
 {{54<5zBCCCr"   r   c                    | S r   r   r   s    r   	__enter__z!AsyncAdapt_dbapi_cursor.__enter__   s    r"   type_	tracebackc                .    |                                   d S r   )rD   )r   r   r0   r   s       r   __exit__z AsyncAdapt_dbapi_cursor.__exit__   s    

r"   Iterator[Any]c              #  `   K   | j         r$| j                                         V  | j         "d S d S r   r|   popleftr   s    r   __iter__z AsyncAdapt_dbapi_cursor.__iter__   sJ      j 	'*$$&&&&& j 	' 	' 	' 	' 	'r"   rN   c                F    | j         r| j                                         S d S r   r   r   s    r   rP   z AsyncAdapt_dbapi_cursor.fetchone   s%    : 	:%%'''4r"   rQ   rR   rS   c           	         || j         }| j        fdt          t          |t	                                        D             S )Nc                8    g | ]}                                 S r   )r   ).0_rrs     r   
<listcomp>z5AsyncAdapt_dbapi_cursor.fetchmany.<locals>.<listcomp>  s!    @@@

@@@r"   )rA   r|   rangeminlen)r   rQ   r   s     @r   rV   z!AsyncAdapt_dbapi_cursor.fetchmany  sH    <>DZ@@@@eCc"gg,>,>&?&?@@@@r"   c                `    t          | j                  }| j                                         |S r   )listr|   r   )r   retvals     r   rX   z AsyncAdapt_dbapi_cursor.fetchall  s*    dj!!
r"   )r~   r}   )r'   r%   r   r%   )r   r   r   r%   )r   r   rh   )r0   r>   r   r   r3   r   ri   )rE   r   r   r   r   r   )r   r   r   r   )r   r   )r   r   r0   r   r   r   r   r   r   r   rj   rk   rl   )r5   r6   r7   r   	__slots__rn   r   r   r   rm   r=   r@   rA   setterrB   rD   rJ   rM   r   r   rd   r[   r   r   r   rP   rV   rX   r   r"   r   rw   rw   |   sT        KI  2222''''
- 
- 
- 
-0 0 0 0# # # #
 ( ( ( X( % % % X% & & & X& ' ' ' ' & & & X&    ;?< < < < <
< 
< 
< 
<   P P P P   D D D D      ' ' ' '   A A A A A     r"   rw   c                  @    e Zd ZdZdZddZddZdddZddZddZ	dS )AsyncAdapt_dbapi_ss_cursorr   Tr   r   c                ~    | j         5|                     | j                                                    d | _         d S d S r   )r{   rz   rD   r   s    r   rD   z AsyncAdapt_dbapi_ss_cursor.close  s=    <#KK**,,---DLLL $#r"   rN   c                Z    |                      | j                                                  S r   )rz   r{   rP   r   s    r   rP   z#AsyncAdapt_dbapi_ss_cursor.fetchone  "    {{4<0022333r"   NrQ   rR   r   c                ^    |                      | j                            |                    S )N)rQ   )rz   r{   rV   rU   s     r   rV   z$AsyncAdapt_dbapi_ss_cursor.fetchmany  s'    {{4<11t1<<===r"   rS   c                Z    |                      | j                                                  S r   )rz   r{   rX   r   s    r   rX   z#AsyncAdapt_dbapi_ss_cursor.fetchall  r   r"   r   c              #     K   | j                                         }	 	 |                     |                                          V  n# t          $ r Y d S w xY w=r   )r{   rg   rz   	__anext__StopAsyncIteration)r   iterators     r   r   z#AsyncAdapt_dbapi_ss_cursor.__iter__  sq      <))++	kk("4"4"6"6777777%   	s   )A 
AAr3   rj   r   )rQ   rR   r   r   rl   r   )
r5   r6   r7   r   r   rD   rP   rV   rX   r   r   r"   r   r   r     s        IK       
4 4 4 4> > > > >4 4 4 4     r"   r   c                  z    e Zd ZU eZeZ ee          Z	dZ
ded<   ddZdddZ	 dddZd dZd!dZd!dZd!dZdS )"r}   )dbapir   r   ry   r   r   r   c                R    || _         || _        t          j                    | _        d S r   )r   ry   asyncioLockr   )r   r   r   s      r   r   z$AsyncAdapt_dbapi_connection.__init__2  s%    
%%lnnr"   Fr   boolr   rw   c                Z    |r|                      |           S |                     |           S r   )_ss_cursor_cls_cursor_cls)r   r   s     r   r'   z"AsyncAdapt_dbapi_connection.cursor7  s2     	*&&t,,,##D)))r"   NrE   rF   rG   c                Z    |                                  }|                    ||           |S )z2lots of DBAPIs seem to provide this, so include it)r'   rJ   )r   rE   rF   r'   s       r   rJ   z#AsyncAdapt_dbapi_connection.execute=  s*     y*---r"   r   r   r   c                ^    t          j                    }|                    |d                   )Nr   )sysexc_infowith_traceback)r   r   r   s      r   r   z-AsyncAdapt_dbapi_connection._handle_exceptionG  s%    <>>""8A;///r"   r   c                    	 |                      | j                                                   d S # t          $ r }|                     |           Y d }~d S d }~ww xY wr   )rz   ry   r*   r   r   r   r   s     r   r*   z$AsyncAdapt_dbapi_connection.rollbackL  ss    	*KK(113344444 	* 	* 	*""5)))))))))	*   ,0 
AAAc                    	 |                      | j                                                   d S # t          $ r }|                     |           Y d }~d S d }~ww xY wr   )rz   ry   r    r   r   r   s     r   r    z"AsyncAdapt_dbapi_connection.commitR  ss    	*KK(//1122222 	* 	* 	*""5)))))))))	*r   c                ^    |                      | j                                                   d S r   )rz   ry   rD   r   s    r   rD   z!AsyncAdapt_dbapi_connection.closeX  s)    D$**,,-----r"   )r   r   r   r   )F)r   r   r   rw   r   ri   )r   r   r   r   r3   )r5   r6   r7   rw   r   r   r   staticmethodr   rz   r   rn   r   r'   rJ   r   r*   r    rD   r   r"   r   r}   r}   (  s         )K/N\*%%F+I''''- - - -
* * * * * ;?    0 0 0 0
* * * ** * * *. . . . . .r"   r}   c                  (    e Zd ZdZ ee          ZdS )#AsyncAdaptFallback_dbapi_connectionr   N)r5   r6   r7   r   r   r   rz   r   r"   r   r   r   \  s"        I\.))FFFr"   r   )#r8   
__future__r   r   r   r   typingr   r   r   r   r   r	   r
   r   enginer   util.concurrencyr   r   util.typingr   engine.interfacesr   r   r   r   r   r   r%   rp   rw   r   r}   r   r   r"   r   <module>r      s   F E " " " " " "      



                                                             & & & & & & - - - - - - ) ) ) ) ) ) " " " " " " #;;;;;;<<<<<<======//////""""""= = = = =X = = =*53 53 53 53 53 53 53 53p4 4 4 4 4 4 4 4N N N N N N N Nb    !8   61. 1. 1. 1. 1."3 1. 1. 1.h* * * * **E * * * * *r"   