
    Bh'                       S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  \(       a  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   " S S\5      r " S S\5      r " S S5      r " S S5      r " S S\5      r  " S  S!\5      r! " S" S#\!5      r"g)$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                  J    \ rS rSrSrS
S jrSS jrS
S jrSS jrSS jr	Sr
g	)AsyncIODBAPIConnection%   zVprotocol representing an async adapted version of a
:pep:`249` database connection.


c                   #    g 7fN selfs    `/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sqlalchemy/connectors/asyncio.pycommitAsyncIODBAPIConnection.commit/   s     C   c                    g r   r   )r   argskwargss      r   cursorAsyncIODBAPIConnection.cursor1   s    s    c                   #    g 7fr   r   r   s    r   rollbackAsyncIODBAPIConnection.rollback3   s     cr!   c                    g r   r   r   keys     r   __getattr__"AsyncIODBAPIConnection.__getattr__5   s    Cr'   c                    g r   r   )r   r-   values      r   __setattr__"AsyncIODBAPIConnection.__setattr__7   s    r'   r   NreturnNone)r#   r   r$   r   r5   AsyncIODBAPICursorr-   strr5   r   )r-   r9   r1   r   r5   r6   )__name__
__module____qualname____firstlineno____doc__r   r%   r)   r.   r2   __static_attributes__r   r'   r   r   r   %   s     (J)/<r'   r   c                     \ rS rSr% SrSS jr\  SS j5       r\SS j5       rS\	S'   S\	S'   SS	 jr
 S     SS jjr      SS jrSS jrSSS jjrS S jrS!S jrS"S jr S     S#S jjrS$S jrS%S jrSrg
)&r7   :   zRprotocol representing an async adapted version
of a :pep:`249` database cursor.


c                    g r   r   r   s    r   
__aenter__AsyncIODBAPICursor.__aenter__A   s    r'   c                    g)z(The description attribute of the Cursor.Nr   r   s    r   descriptionAsyncIODBAPICursor.descriptionC   s    
 	r'   intc                    g r   r   r   s    r   rowcountAsyncIODBAPICursor.rowcountJ   s    "r'   	arraysize	lastrowidc                   #    g 7fr   r   r   s    r   closeAsyncIODBAPICursor.closeQ   s     3r!   Nc                   #    g 7fr   r   r   	operation
parameterss      r   executeAsyncIODBAPICursor.executeS   
      r!   c                   #    g 7fr   r   rR   s      r   executemanyAsyncIODBAPICursor.executemanyY   rW   r!   c                   #    g 7fr   r   r   s    r   fetchoneAsyncIODBAPICursor.fetchone_        sr!   c                   #    g 7fr   r   r   sizes     r   	fetchmanyAsyncIODBAPICursor.fetchmanya   s     3r!   c                   #    g 7fr   r   r   s    r   fetchallAsyncIODBAPICursor.fetchallc   r^   r!   c                   #    g 7fr   r   )r   sizess     r   setinputsizes AsyncIODBAPICursor.setinputsizese   s     r!   c                    g r   r   )r   ra   columns      r   setoutputsize AsyncIODBAPICursor.setoutputsizeg   s    Sr'   c                   #    g 7fr   r   )r   procnamerT   s      r   callprocAsyncIODBAPICursor.callproci   s     r!   c                   #    g 7fr   r   r   s    r   nextsetAsyncIODBAPICursor.nextsetm   r^   r!   c                    g r   r   r   s    r   	__aiter__AsyncIODBAPICursor.__aiter__o   s    sr'   r   )r5   r   )r5   r   r5   rH   r4   r   rS   r   rT   z#Optional[_DBAPISingleExecuteParams]r5   r   )rS   r   rT   r   r5   r   r5   zOptional[Any]).ra   Optional[int]r5   Sequence[Any]r5   r~   )rh   r~   r5   r6   )ra   r   rl   r   r5   r6   )rp   r9   rT   r~   r5   r   )r5   zOptional[bool])r5   zAsyncIterator[Any])r:   r;   r<   r=   r>   rC   propertyrF   rJ   __annotations__rO   rU   rY   r\   rb   re   ri   rm   rq   rt   rw   r?   r   r'   r   r7   r7   :   s     %	   " "NN&
 ;? 8 
	 - 
	 3N2D@ :=)6	 32r'   r7   c                      \ rS rSr\(       a8  \R                  r\R                  r\R                  r\R                  r	SS jr
SrgSrg)AsyncAdapt_dbapi_moduler   c                    g r   r   r,   s     r   r.   #AsyncAdapt_dbapi_module.__getattr__y   s    r'   r   Nr8   )r:   r;   r<   r=   r   r   ErrorOperationalErrorInterfaceErrorIntegrityErrorr.   r?   r   r'   r   r   r   r   s:    !!&77$33$333 r'   r   c                     \ rS rSr% SrSrS\S'   S\S'   S\S	'   S
\S'   S#S jrS$S jr    S%S jr	\
S&S j5       r\
S'S j5       r\
S'S j5       r\R                  S(S j5       r\
S'S j5       rS)S jr S*     S+S jjr      S,S jr      S+S jr      S,S jrS)S jrS-S jrS.S jrS/S jrS0S jrS1S jrS*S2S  jjrS3S! jrS"rg)4AsyncAdapt_dbapi_cursor|   F)_adapt_connection_connectionawait__cursor_rowsr7   r   AsyncAdapt_dbapi_connectionr   r   r   z
Deque[Any]r   c                   Xl         UR                  U l        UR                  U l        U R                  U R                  5      nU R	                  U5      U l        U R                  (       d  [        R                  " 5       U l	        g g r   )
r   r   r   _make_new_cursor_aenter_cursorr   server_sidecollectionsdequer   )r   adapt_connectionr%   s      r   __init__ AsyncAdapt_dbapi_cursor.__init__   si    !1+77&--&&t'7'78**62$**,DJ  r'   c                @    U R                  UR                  5       5      $ r   )r   rC   )r   r%   s     r   r   &AsyncAdapt_dbapi_cursor._aenter_cursor   s    {{6,,.//r'   c                "    UR                  5       $ r   )r%   )r   
connections     r   r   (AsyncAdapt_dbapi_cursor._make_new_cursor   s       ""r'   c                .    U R                   R                  $ r   )r   rF   r   s    r   rF   #AsyncAdapt_dbapi_cursor.description   s    ||'''r'   c                .    U R                   R                  $ r   )r   rJ   r   s    r   rJ    AsyncAdapt_dbapi_cursor.rowcount   s    ||$$$r'   c                .    U R                   R                  $ r   r   rL   r   s    r   rL   !AsyncAdapt_dbapi_cursor.arraysize       ||%%%r'   c                $    XR                   l        g r   r   )r   r1   s     r   rL   r      s    !&r'   c                .    U R                   R                  $ r   )r   rM   r   s    r   rM   !AsyncAdapt_dbapi_cursor.lastrowid   r   r'   c                8    U R                   R                  5         g r   )r   clearr   s    r   rO   AsyncAdapt_dbapi_cursor.close   s     	

r'   Nc                     U R                  U R                  X5      5      $ ! [         a%  nU R                  R	                  U5         S nAg S nAff = fr   )r   _execute_async	Exceptionr   _handle_exception)r   rS   rT   errors       r   rU   AsyncAdapt_dbapi_cursor.execute   sH    
	<;;t229IJJ 	<""44U;;	<   " 
AAAc                     U R                  U R                  X5      5      $ ! [         a%  nU R                  R	                  U5         S nAg S nAff = fr   )r   _executemany_asyncr   r   r   )r   rS   seq_of_parametersr   s       r   rY   #AsyncAdapt_dbapi_cursor.executemany   sO    
	<;;''	E   	<""44U;;	<r   c                  #    U R                   R                   IS h  vN   Uc$  U R                  R                  U5      I S h  vN nO#U R                  R                  X5      I S h  vN nU R                  R                  (       aL  U R
                  (       d;  [        R                  " U R                  R                  5       I S h  vN 5      U l	        UsS S S 5      IS h  vN   $  N N N N& N! , IS h  vN  (       d  f       g = f7fr   )
r   _execute_mutexr   rU   rF   r   r   r   re   r   )r   rS   rT   results       r   r   &AsyncAdapt_dbapi_cursor._execute_async   s      ))888!#||33I>>#||33IJJ||''0@0@(..T\\5J5J5L/LM
 988>J 0M 9888s{   D
C&D
"C0C(#C0'C*(AC0C,
C0D
 C.!D
(C0*C0,C0.D
0D6C97DD
c                   #    U R                   R                   IS h  vN   U R                  R                  X5      I S h  vN sS S S 5      IS h  vN   $  N8 N N	! , IS h  vN  (       d  f       g = f7fr   )r   r   r   rY   )r   rS   r   s      r   r   *AsyncAdapt_dbapi_cursor._executemany_async   sJ     
 ))88811)OO 988O 9888sV   A6AA6A AAA6AA6AA6A3"A%#A3/A6c                6   U R                  U R                  R                  5       5        U R                  R                  (       aU  U R                  (       dC  [
        R                  " U R                  U R                  R                  5       5      5      U l        g g g r   )	r   r   rt   rF   r   r   r   re   r   r   s    r   rt   AsyncAdapt_dbapi_cursor.nextset   sc    DLL((*+<<##D,<,<$**DLL1134DJ -=#r'   c                R    U R                  U R                  R                  " U6 5      $ r   )r   r   ri   )r   
inputsizess     r   ri   %AsyncAdapt_dbapi_cursor.setinputsizes   s"    
 {{4<<55zBCCr'   c                    U $ r   r   r   s    r   	__enter__!AsyncAdapt_dbapi_cursor.__enter__   s    r'   c                $    U R                  5         g r   )rO   )r   type_r1   	tracebacks       r   __exit__ AsyncAdapt_dbapi_cursor.__exit__   s    

r'   c              #     #    U R                   (       a0  U R                   R                  5       v   U R                   (       a  M/  g g 7fr   r   popleftr   s    r   __iter__ AsyncAdapt_dbapi_cursor.__iter__   s*     jj**$$&& jjjs   ?AAc                Z    U R                   (       a  U R                   R                  5       $ g r   r   r   s    r   r\    AsyncAdapt_dbapi_cursor.fetchone   s    ::::%%''r'   c                    Uc  U R                   nU R                  n[        [        U[	        U5      5      5       Vs/ s H  o2R                  5       PM     sn$ s  snf r   )rL   r   rangeminlenr   )r   ra   rr_s       r   rb   !AsyncAdapt_dbapi_cursor.fetchmany  sG    <>>DZZ&+Cc"g,>&?@&?

&?@@@s   Ac                d    [        U R                  5      nU R                  R                  5         U$ r   )listr   r   )r   retvals     r   re    AsyncAdapt_dbapi_cursor.fetchall  s%    djj!

r'   )r   r   r   r   r   )r   r   )r%   r7   r5   r7   )r   r   r5   r7   )r5   z!Optional[_DBAPICursorDescription]ry   )r1   rH   r5   r6   r4   r   rz   )rS   r   r   r   r5   r   )r   r   r5   r6   )r5   r   )r   r   r1   r   r   r   r5   r6   r5   zIterator[Any]r{   r|   r   )r:   r;   r<   r=   r   	__slots__r   r   r   r   r   rF   rJ   rL   setterrM   rO   rU   rY   r   r   rt   ri   r   r   r   r\   rb   re   r?   r   r'   r   r   r   |   si   KI  22''
-0#0#	#
 ( ( % % & & ' ' & & ;?<< 8< 
	<
<
< 4
< 
	
<*M	PP 4P 
	PD'Ar'   r   c                  R    \ rS rSrSrSrSS jrSS jrSSS jjrSS jr	SS	 jr
S
rg)AsyncAdapt_dbapi_ss_cursori  r   Tc                    U R                   b1  U R                  U R                   R                  5       5        S U l         g g r   )r   r   rO   r   s    r   rO    AsyncAdapt_dbapi_ss_cursor.close  s1    <<#KK**,-DL $r'   c                T    U R                  U R                  R                  5       5      $ r   )r   r   r\   r   s    r   r\   #AsyncAdapt_dbapi_ss_cursor.fetchone      {{4<<00233r'   Nc                R    U R                  U R                  R                  US95      $ )N)ra   )r   r   rb   r`   s     r   rb   $AsyncAdapt_dbapi_ss_cursor.fetchmany  s#    {{4<<11t1<==r'   c                T    U R                  U R                  R                  5       5      $ r   )r   r   re   r   s    r   re   #AsyncAdapt_dbapi_ss_cursor.fetchall  r   r'   c              #     #    U R                   R                  5       n  U R                  UR                  5       5      v   M$  ! [         a     g f = f7fr   )r   rw   r   	__anext__StopAsyncIteration)r   iterators     r   r   #AsyncAdapt_dbapi_ss_cursor.__iter__  sO     <<))+kk("4"4"677  & s(   A!A  A
AAAA)r   r4   r{   r   )ra   r}   r5   r   r   r   )r:   r;   r<   r=   r   r   rO   r\   rb   re   r   r?   r   r'   r   r   r     s%    IK 
4>4r'   r   c                      \ rS rSr% \r\r\" \	5      r
SrS\S'   SS jrSSS jjr S     SS jjrSS	 jrSS
 jrSS jrSS jrSrg)r   i(  )dbapir   r   r   c                P    Xl         X l        [        R                  " 5       U l        g r   )r   r   asyncioLockr   )r   r   r   s      r   r   $AsyncAdapt_dbapi_connection.__init__2  s    
%%llnr'   c                T    U(       a  U R                  U 5      $ U R                  U 5      $ r   )_ss_cursor_cls_cursor_cls)r   r   s     r   r%   "AsyncAdapt_dbapi_connection.cursor7  s'    &&t,,##D))r'   Nc                H    U R                  5       nUR                  X5        U$ )z2lots of DBAPIs seem to provide this, so include it)r%   rU   )r   rS   rT   r%   s       r   rU   #AsyncAdapt_dbapi_connection.execute=  s      y-r'   c                T    [         R                  " 5       nUR                  US   5      e)Nr   )sysexc_infowith_traceback)r   r   r  s      r   r   -AsyncAdapt_dbapi_connection._handle_exceptionG  s"    <<>""8A;//r'   c                     U R                  U R                  R                  5       5        g ! [         a  nU R	                  U5         S nAg S nAff = fr   )r   r   r)   r   r   r   r   s     r   r)   $AsyncAdapt_dbapi_connection.rollbackL  sC    	*KK((1134 	*""5))	*   ), 
AAAc                     U R                  U R                  R                  5       5        g ! [         a  nU R	                  U5         S nAg S nAff = fr   )r   r   r   r   r   r  s     r   r   "AsyncAdapt_dbapi_connection.commitR  sC    	*KK((//12 	*""5))	*r  c                V    U R                  U R                  R                  5       5        g r   )r   r   rO   r   s    r   rO   !AsyncAdapt_dbapi_connection.closeX  s    D$$**,-r'   )r   r   r   )r   r   r   r   )F)r   boolr5   r   r   rz   )r   r   r5   r   r4   )r:   r;   r<   r=   r   r   r   r   staticmethodr   r   r   r   r   r%   rU   r   r)   r   rO   r?   r   r'   r   r   r   (  se    )K/N*%F+I''-
* ;? 8 
	0
**.r'   r   c                  (    \ rS rSrSr\" \5      rSrg)#AsyncAdaptFallback_dbapi_connectioni\  r   N)	r:   r;   r<   r=   r   r  r   r   r?   r   r'   r   r  r  \  s    I.)Fr'   r  )#r>   
__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   r7   r   r   r   r   r  r   r'   r   <module>r     s    F "   
           & - ) ";<=/"=X =*53 53p4 4N Nb!8 61."3 1.h**E *r'   