
    )fC                        d Z ddlm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
  G d	 d
      Z G d de      Z G d de      Z G d de      Zy)z?generic asyncio-adapted versions of DBAPI connection and cursor    )annotationsN   )AdaptedConnection)asyncio)await_fallback)
await_onlyc                      e Zd ZdZdZd Zd Zed        Zed        Z	ed        Z
e
j                  d        Z
ed	        Zd
 ZddZd Zd Zd Zd Zd Zd Zd ZddZd Zy)AsyncAdapt_dbapi_cursorF)_adapt_connection_connectionawait__cursor_rowsc                    || _         |j                  | _        |j                  | _        | j                  j                         }| j	                  |      | _        t        j                         | _        y N)	r   r   r   cursor_aenter_cursorr   collectionsdequer   selfadapt_connectionr   s      Z/var/www/html/flask-app/venv/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py__init__z AsyncAdapt_dbapi_cursor.__init__    s[    !1+77&--!!((***62 &&(
    c                @    | j                  |j                               S r   )r   
__aenter__)r   r   s     r   r   z&AsyncAdapt_dbapi_cursor._aenter_cursor*   s    {{6,,.//r   c                .    | j                   j                  S r   )r   descriptionr   s    r   r   z#AsyncAdapt_dbapi_cursor.description-   s    ||'''r   c                .    | j                   j                  S r   )r   rowcountr    s    r   r"   z AsyncAdapt_dbapi_cursor.rowcount1   s    ||$$$r   c                .    | j                   j                  S r   r   	arraysizer    s    r   r%   z!AsyncAdapt_dbapi_cursor.arraysize5       ||%%%r   c                &    || j                   _        y r   r$   r   values     r   r%   z!AsyncAdapt_dbapi_cursor.arraysize9   s    !&r   c                .    | j                   j                  S r   )r   	lastrowidr    s    r   r+   z!AsyncAdapt_dbapi_cursor.lastrowid=   r&   r   c                8    | j                   j                          y r   )r   clearr    s    r   closezAsyncAdapt_dbapi_cursor.closeA   s     	

r   Nc                D    | j                  | j                  ||            S r   )r   _execute_async)r   	operation
parameterss      r   executezAsyncAdapt_dbapi_cursor.executeF   s    {{4..y*EFFr   c                D    | j                  | j                  ||            S r   )r   _executemany_asyncr   r1   seq_of_parameterss      r   executemanyz#AsyncAdapt_dbapi_cursor.executemanyI   s$    {{##I/@A
 	
r   c                  K   | j                   j                  4 d {    | j                  j                  ||xs d       d {   }| j                  j                  rF| j
                  s:t        j                  | j                  j                          d {         | _	        |cd d d       d {    S 7 7 u7 $7 # 1 d {  7  sw Y   y xY ww)N )
r   _execute_mutexr   r3   r   server_sider   r   fetchallr   )r   r1   r2   results       r   r0   z&AsyncAdapt_dbapi_cursor._execute_asyncN   s     ))88 	 	<<//	:;KLLF||''0@0@(..T\\5J5J5L/LM
	 	 	L 0M		 	 	 	si   CB9C$CB;ACB=
C'C3B?4C;C=C?CCC
CCc                   K   | j                   j                  4 d {    | j                  j                  ||       d {   cd d d       d {    S 7 97 7 	# 1 d {  7  sw Y   y xY wwr   )r   r;   r   r8   r6   s      r   r5   z*AsyncAdapt_dbapi_cursor._executemany_asyncV   si     ))88 	P 	P11)=NOO	P 	P 	PO	P 	P 	P 	PsV   A2AA2 AAAA2AA2AA2A/#A&$A/+A2c                    | j                  | j                  j                                | j                  j                  rO| j                  sBt        j                  | j                  | j                  j                                     | _        y y y r   )	r   r   nextsetr   r<   r   r   r=   r   r    s    r   rA   zAsyncAdapt_dbapi_cursor.nextsetZ   sc    DLL((*+<<##D,<,<$**DLL1134DJ -=#r   c                R    | j                   | j                  j                  |       S r   )r   r   setinputsizes)r   
inputsizess     r   rC   z%AsyncAdapt_dbapi_cursor.setinputsizesa   s%    
 {{54<<55zBCCr   c              #  x   K   | j                   r*| j                   j                          | j                   r)y y wr   r   popleftr    s    r   __iter__z AsyncAdapt_dbapi_cursor.__iter__h   s)     jj**$$&& jjs   5::c                P    | j                   r| j                   j                         S y r   rF   r    s    r   fetchonez AsyncAdapt_dbapi_cursor.fetchonel   s    ::::%%''r   c                    || j                   }t        | j                        }t        t	        j
                  |d|            }t        j                  |      | _        |S )Nr   )r%   iterr   list	itertoolsislicer   r   )r   sizerrretvals       r   	fetchmanyz!AsyncAdapt_dbapi_cursor.fetchmanyr   sN    <>>D$**i&&r1d34 &&r*
r   c                d    t        | j                        }| j                  j                          |S r   )rM   r   r-   )r   rR   s     r   r=   z AsyncAdapt_dbapi_cursor.fetchall{   s%    djj!

r   r   )__name__
__module____qualname__r<   	__slots__r   r   propertyr   r"   r%   setterr+   r.   r3   r8   r0   r5   rA   rC   rH   rJ   rS   r=   r:   r   r   r
   r
      s    KI)0 ( ( % % & & ' ' & &
G

PD'r   r
   c                  4    e Zd ZdZdZd Zd Zd Zd	dZd Z	y)
AsyncAdapt_dbapi_ss_cursorr:   Tc                    || _         |j                  | _        |j                  | _        | j                  j                         }| j                  |j	                               | _        y r   )r   r   r   r   r   r   r   s      r   r   z#AsyncAdapt_dbapi_ss_cursor.__init__   sR    !1+77&--!!((*{{6#4#4#67r   c                ~    | j                   1| j                  | j                   j                                d | _         y y r   )r   r   r.   r    s    r   r.   z AsyncAdapt_dbapi_ss_cursor.close   s1    <<#KK**,-DL $r   c                T    | j                  | j                  j                               S r   )r   r   rJ   r    s    r   rJ   z#AsyncAdapt_dbapi_ss_cursor.fetchone       {{4<<00233r   Nc                X    | j                  | j                  j                  |            S )N)rP   )r   r   rS   )r   rP   s     r   rS   z$AsyncAdapt_dbapi_ss_cursor.fetchmany   s#    {{4<<11t1<==r   c                T    | j                  | j                  j                               S r   )r   r   r=   r    s    r   r=   z#AsyncAdapt_dbapi_ss_cursor.fetchall   r`   r   r   )
rU   rV   rW   rX   r<   r   r.   rJ   rS   r=   r:   r   r   r\   r\      s%    IK8 
4>4r   r\   c                      e Zd ZeZeZ ee      Z	dZ
d Zd Zd Zd Zed        Zej"                  d        ZddZd	 Zd
 Zd Zy)AsyncAdapt_dbapi_connection)dbapir;   c                R    || _         || _        t        j                         | _        y r   )re   r   r   Lockr;   )r   re   
connections      r   r   z$AsyncAdapt_dbapi_connection.__init__   s    
%%llnr   c                V    | j                  | j                  j                  |            S r   )r   r   ping)r   	reconnects     r   rj   z AsyncAdapt_dbapi_connection.ping   s"    {{4++00;<<r   c                <     | j                   j                  |i | y r   )r   add_output_converter)r   argkws      r   rm   z0AsyncAdapt_dbapi_connection.add_output_converter   s    ---s9b9r   c                6    | j                   j                         S r   )r   character_set_namer    s    r   rq   z.AsyncAdapt_dbapi_connection.character_set_name   s    2244r   c                .    | j                   j                  S r   )r   
autocommitr    s    r   rs   z&AsyncAdapt_dbapi_connection.autocommit   s    ***r   c                :    || j                   j                  _        y r   )r   _connrs   r(   s     r   rs   z&AsyncAdapt_dbapi_connection.autocommit   s    
 -2)r   c                J    |r| j                  |       S | j                  |       S r   )_ss_cursor_cls_cursor_cls)r   r<   s     r   r   z"AsyncAdapt_dbapi_connection.cursor   s'    &&t,,##D))r   c                V    | j                  | j                  j                                y r   )r   r   rollbackr    s    r   rz   z$AsyncAdapt_dbapi_connection.rollback   s    D$$--/0r   c                V    | j                  | j                  j                                y r   )r   r   commitr    s    r   r|   z"AsyncAdapt_dbapi_connection.commit   s    D$$++-.r   c                V    | j                  | j                  j                                y r   )r   r   r.   r    s    r   r.   z!AsyncAdapt_dbapi_connection.close   s    D$$**,-r   N)F)rU   rV   rW   r
   rx   r\   rw   staticmethodr   r   rX   r   rj   rm   rq   rY   rs   rZ   r   rz   r|   r.   r:   r   r   rd   rd      sq    )K/N*%F+I-
=:5 + + 2 2*1/.r   rd   c                       e Zd ZdZ ee      Zy)#AsyncAdaptFallback_dbapi_connectionr:   N)rU   rV   rW   rX   r~   r   r   r:   r   r   r   r      s    I.)Fr   r   )__doc__
__future__r   r   rN   enginer   util.concurrencyr   r   r   r
   r\   rd   r   r:   r   r   <module>r      sU    F "   & & - )h hV4!8 48-."3 -.`**E *r   