
    `?i3                       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  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' " S( S)5      r(g)*z?generic asyncio-adapted versions of DBAPI connection and cursor    )annotationsN)Any)AsyncIterator)Deque)Iterator)NoReturn)Optional)Sequence)Tuple)Type)TYPE_CHECKING   )AdaptedConnection)
EMPTY_DICT)await_fallback)
await_only)in_greenlet)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    a/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/sqlalchemy/connectors/asyncio.pycommitAsyncIODBAPIConnection.commit3   s     C   c                    g r   r   )r!   argskwargss      r"   cursorAsyncIODBAPIConnection.cursor5   s    s    c                   #    g 7fr   r   r    s    r"   rollbackAsyncIODBAPIConnection.rollback7   s     cr%   c                    g r   r   r!   keys     r"   __getattr__"AsyncIODBAPIConnection.__getattr__9   s    Cr+   c                    g r   r   )r!   r1   values      r"   __setattr__"AsyncIODBAPIConnection.__setattr__;   s    r+   r   NreturnNone)r'   r   r(   r   r9   AsyncIODBAPICursorr1   strr9   r   )r1   r=   r5   r   r9   r:   )__name__
__module____qualname____firstlineno____doc__r#   r)   r-   r2   r6   __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
)&r;   >   zRprotocol representing an async adapted version
of a :pep:`249` database cursor.


c                    g r   r   r    s    r"   
__aenter__AsyncIODBAPICursor.__aenter__E   s    r+   c                    g)z(The description attribute of the Cursor.Nr   r    s    r"   descriptionAsyncIODBAPICursor.descriptionG   s    
 	r+   intc                    g r   r   r    s    r"   rowcountAsyncIODBAPICursor.rowcountN   s    "r+   	arraysize	lastrowidc                   #    g 7fr   r   r    s    r"   closeAsyncIODBAPICursor.closeU   s     3r%   Nc                   #    g 7fr   r   r!   	operation
parameterss      r"   executeAsyncIODBAPICursor.executeW   
      r%   c                   #    g 7fr   r   rV   s      r"   executemanyAsyncIODBAPICursor.executemany]   r[   r%   c                   #    g 7fr   r   r    s    r"   fetchoneAsyncIODBAPICursor.fetchonec        sr%   c                   #    g 7fr   r   r!   sizes     r"   	fetchmanyAsyncIODBAPICursor.fetchmanye   s     3r%   c                   #    g 7fr   r   r    s    r"   fetchallAsyncIODBAPICursor.fetchallg   rb   r%   c                   #    g 7fr   r   )r!   sizess     r"   setinputsizes AsyncIODBAPICursor.setinputsizesi   s     r%   c                    g r   r   )r!   re   columns      r"   setoutputsize AsyncIODBAPICursor.setoutputsizek   s    Sr+   c                   #    g 7fr   r   )r!   procnamerX   s      r"   callprocAsyncIODBAPICursor.callprocm   s     r%   c                   #    g 7fr   r   r    s    r"   nextsetAsyncIODBAPICursor.nextsetq   rb   r%   c                    g r   r   r    s    r"   	__aiter__AsyncIODBAPICursor.__aiter__s   s    sr+   r   )r9   r   )r9   r   r9   rL   r8   r   rW   r   rX   z#Optional[_DBAPISingleExecuteParams]r9   r   )rW   r   rX   r   r9   r   r9   zOptional[Any]).re   Optional[int]r9   Sequence[Any]r9   r   )rl   r   r9   r:   )re   r   rp   r   r9   r:   )rt   r=   rX   r   r9   r   )r9   zOptional[bool])r9   zAsyncIterator[Any])r>   r?   r@   rA   rB   rG   propertyrJ   rN   __annotations__rS   rY   r]   r`   rf   ri   rm   rq   ru   rx   r{   rC   r   r+   r"   r;   r;   >   s     %	   " "NN&
 ;? 8 
	 - 
	 3N2D@ :=)6	 32r+   r;   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_modulev   c                    g r   r   r0   s     r"   r2   #AsyncAdapt_dbapi_module.__getattr__}   s    r+   r   Nr<   )r>   r?   r@   rA   r   r   ErrorOperationalErrorInterfaceErrorIntegrityErrorr2   rC   r   r+   r"   r   r   v   s:    !!&77$33$333 r+   r   c                     \ rS rSr% SrSrSrS\S'   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 jr S.     S/S jjr      S0S jr      S/S jr      S0S jrS-S jrS1S jrS2S  jrS3S! jrS4S" jrS5S# jrS.S6S$ jjrS7S% jrS&rg)8AsyncAdapt_dbapi_cursor   F)_adapt_connection_connectionawait__cursor_rows_soft_closed_memoizedTbool_awaitable_cursor_closer;   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 l        U R                  (       d  [        R                  " 5       U l        g g r   )r   r   r   _make_new_cursor_aenter_cursorr   r   r   server_sidecollectionsdequer   )r!   adapt_connectionr)   s      r"   __init__ AsyncAdapt_dbapi_cursor.__init__   sq    !1+77&--&&t'7'78**62%/"$**,DJ  r+   c                @    U R                  UR                  5       5      $ r   )r   rG   )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                l    SU R                   ;   a  U R                   S   $ U R                  R                  $ )NrJ   )r   r   rJ   r    s    r"   rJ   #AsyncAdapt_dbapi_cursor.description   s1    D666--m<<||'''r+   c                .    U R                   R                  $ r   )r   rN   r    s    r"   rN    AsyncAdapt_dbapi_cursor.rowcount   s    ||$$$r+   c                .    U R                   R                  $ r   r   rP   r    s    r"   rP   !AsyncAdapt_dbapi_cursor.arraysize       ||%%%r+   c                $    XR                   l        g r   r   )r!   r5   s     r"   rP   r      s    !&r+   c                .    U R                   R                  $ r   )r   rQ   r    s    r"   rQ   !AsyncAdapt_dbapi_cursor.lastrowid   r   r+   c                  #    U R                   (       a  U R                  (       a  gU R                  R                  SU R                  R
                  05      U l        U R                  R                  5       I Sh  vN   g N7f)zgclose the cursor but keep the results pending, and memoize the
description.

.. versionadded:: 2.0.44

NrJ   )r   r   r   unionr   rJ   rS   r    s    r"   _async_soft_close)AsyncAdapt_dbapi_cursor._async_soft_close   s`      ++t/?/?%)%?%?%E%Et||77&
"
 ll  """s   A7B9A?:Bc                R   U R                   R                  5         U R                  b  [        U R                  5      (       a  g U R
                  (       d  U R                  R                  5         g [        5       (       a*  U R                  U R                  R                  5       5        g g r   )	r   clearr   r   r   r   rS   r   r   r    s    r"   rS   AsyncAdapt_dbapi_cursor.close   so    

 <<4(B(B#C#C++LL ]]KK**,- 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!   rW   rX   errors       r"   rY   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!   rW   seq_of_parametersr   s       r"   r]   #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   rY   rJ   r   r   r   ri   r   )r!   rW   rX   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   r]   )r!   rW   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   rx   rJ   r   r   r   ri   r   r    s    r"   rx   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   rm   )r!   
inputsizess     r"   rm   %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   )rS   )r!   type_r5   	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   )rP   r   rangeminlenr   )r!   re   rr_s       r"   rf   !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"   ri    AsyncAdapt_dbapi_cursor.fetchall-  s%    djj!

r+   )r   r   r   r   r   r   )r   r   )r)   r;   r9   r;   )r   r   r9   r;   )r9   z!Optional[_DBAPICursorDescription]r}   )r5   rL   r9   r:   r8   r   r~   )rW   r   r   r   r9   r   )r   r   r9   r:   )r9   r   )r   r   r5   r   r   r   r9   r:   r9   zIterator[Any]r   r   r   ) r>   r?   r@   rA   r   	__slots__r   r   r   r   r   r   rJ   rN   rP   setterrQ   r   rS   rY   r]   r   r   rx   rm   r   r   r   r`   rf   ri   rC   r   r+   r"   r   r      sy   KI %)T(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_cursori3  r   Tc                    U R                   b1  U R                  U R                   R                  5       5        S U l         g g r   )r   r   rS   r    s    r"   rS    AsyncAdapt_dbapi_ss_cursor.close7  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)re   )r   r   rf   rd   s     r"   rf   $AsyncAdapt_dbapi_ss_cursor.fetchmany?  s#    {{4<<11t1<==r+   c                T    U R                  U R                  R                  5       5      $ r   )r   r   ri   r    s    r"   ri   #AsyncAdapt_dbapi_ss_cursor.fetchallB  r   r+   c              #     #    U R                   R                  5       n  U R                  UR                  5       5      v   M$  ! [         a     g f = f7fr   )r   r{   r   	__anext__StopAsyncIteration)r!   iterators     r"   r   #AsyncAdapt_dbapi_ss_cursor.__iter__E  sO     <<))+kk("4"4"677  & s(   A!A  A
AAAA)r   r8   r   r   )re   r   r9   r   r   r   )r>   r?   r@   rA   r   r   rS   r`   rf   ri   r   rC   r   r+   r"   r   r   3  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   iN  )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__X  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.cursor]  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)   rY   )r!   rW   rX   r)   s       r"   rY   #AsyncAdapt_dbapi_connection.executec  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_exceptionm  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.rollbackr  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.commitx  sC    	*KK((//12 	*""5))	*r  c                V    U R                  U R                  R                  5       5        g r   )r   r   rS   r    s    r"   rS   !AsyncAdapt_dbapi_connection.close~  s    D$$**,-r+   )r   r   r   )r   r   r   r   )F)r   r   r9   r   r   r~   )r   r   r9   r   r8   )r>   r?   r@   rA   r   r  r   r  staticmethodr   r   r   r   r   r)   rY   r   r-   r#   rS   rC   r   r+   r"   r   r   N  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@   rA   r   r  r   r   rC   r   r+   r"   r  r    s    I.)Fr+   r  c                  D    \ rS rSrSrSrS	S jrS
S jrS	S jrS	S jr	Sr
g)AsyncAdapt_terminatei  zAMixin for a AsyncAdapt_dbapi_connection to add terminate support.r   c                N   [        5       (       a5   U R                  [        R                  " U R	                  5       5      5        g U R                  5         g ! U R                  5        a:  nU R                  5         [        U[        R                  5      (       a  e  S nAg S nAff = fr   )	r   r   r  shield_terminate_graceful_close_terminate_handled_exceptions_terminate_force_close
isinstanceCancelledError)r!   es     r"   	terminateAsyncAdapt_terminate.terminate  s~    ==GNN4+I+I+KLM '') 557 	 ++-a!7!788 9	s   3A B$*0BB$c                L    [         R                  [         R                  [        4$ )zLReturns the exceptions that should be handled when
calling _graceful_close.
)r  TimeoutErrorr"  OSErrorr    s    r"   r  2AsyncAdapt_terminate._terminate_handled_exceptions  s     $$g&<&<gFFr+   c                   #    [         e7f)z"Try to close connection gracefullyNotImplementedErrorr    s    r"   r  .AsyncAdapt_terminate._terminate_graceful_close  s     !!s   	c                    [         e)zTerminate the connectionr+  r    s    r"   r   +AsyncAdapt_terminate._terminate_force_close  s    !!r+   Nr8   )r9   zTuple[Type[BaseException], ...])r>   r?   r@   rA   rB   r   r$  r  r  r   rC   r   r+   r"   r  r    s    KI*(G""r+   r  ))rB   
__future__r   r  r   r  typingr   r   r   r   r   r	   r
   r   r   r   enginer   utilr   util.concurrencyr   r   r   util.typingr   engine.interfacesr   r   r   r   r   r   r;   r   r   r   r   r  r  r   r+   r"   <module>r7     s    F "   
             &  - ) * ";<=/"=X =*53 53p4 4p pf!8 61."3 1.h**E *%" %"r+   