
    nf                        d Z ddlm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      \/var/www/feuerwehr-webapp/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.rowcount0   s    ||$$$r   c                .    | j                   j                  S r   r   	arraysizer    s    r   r%   z!AsyncAdapt_dbapi_cursor.arraysize4       ||%%%r   c                &    || j                   _        y r   r$   r   values     r   r%   z!AsyncAdapt_dbapi_cursor.arraysize8   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.close@   s     	

r   Nc                D    | j                  | j                  ||            S r   )r   _execute_async)r   	operation
parameterss      r   executezAsyncAdapt_dbapi_cursor.executeE   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.executemanyH   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_asyncM   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_asyncU   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.nextsetY   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.setinputsizes`   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__g   s)     jj**$$&& jjs   5::c                P    | j                   r| j                   j                         S y r   rF   r    s    r   fetchonez AsyncAdapt_dbapi_cursor.fetchonek   s    ::::%%''r   c                    || j                   }| j                  }t        t        |t	        |                  D cg c]  }|j                          c}S c c}w r   )r%   r   rangeminlenrG   )r   sizerr_s       r   	fetchmanyz!AsyncAdapt_dbapi_cursor.fetchmanyq   sC    <>>DZZ&+Cc"g,>&?@

@@@s   Ac                d    t        | j                        }| j                  j                          |S r   )listr   r-   )r   retvals     r   r=   z AsyncAdapt_dbapi_cursor.fetchallw   s%    djj!

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

PD'A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)rO   )r   r   rR   )r   rO   s     r   rR   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   ra   r   r   )
rV   rW   rX   rY   r<   r   r.   rJ   rR   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   )rf   r   r   Lockr;   )r   rf   
connections      r   r   z$AsyncAdapt_dbapi_connection.__init__   s    
%%llnr   c                V    | j                  | j                  j                  |            S r   )r   r   ping)r   	reconnects     r   rk   z AsyncAdapt_dbapi_connection.ping   s"    {{4++00;<<r   c                <     | j                   j                  |i | y r   )r   add_output_converter)r   argkws      r   rn   z0AsyncAdapt_dbapi_connection.add_output_converter   s    ---s9b9r   c                6    | j                   j                         S r   )r   character_set_namer    s    r   rr   z.AsyncAdapt_dbapi_connection.character_set_name   s    2244r   c                .    | j                   j                  S r   )r   
autocommitr    s    r   rt   z&AsyncAdapt_dbapi_connection.autocommit   s    ***r   c                :    || j                   j                  _        y r   )r   _connrt   r(   s     r   rt   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   r{   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)rV   rW   rX   r
   ry   r]   rx   staticmethodr   r   rY   r   rk   rn   rr   rZ   rt   r[   r   r{   r}   r.   r:   r   r   re   re      sq    )K/N*%F+I-
=:5 + + 2 2*1/.r   re   c                       e Zd ZdZ ee      Zy)#AsyncAdaptFallback_dbapi_connectionr:   N)rV   rW   rX   rY   r   r   r   r:   r   r   r   r      s    I.)Fr   r   )__doc__
__future__r   r   enginer   util.concurrencyr   r   r   r
   r]   re   r   r:   r   r   <module>r      sR    F "  & & - )e eP4!8 48-."3 -.`**E *r   