+
    Xj!                       R t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ]
'       d1   ^RIHt ^RIHt ^RIHt ^RIH t  ^RIH!t! ^RIH"t" ^RIH#t# ^RI$H%t%  ! R R]4      t& ! R R ]]&4      t' ! R! R"]]4      t( ! R# R$](4      t) ! R% R&]4      t* ! R' R(]4      t+]+t,R)# )*a  
.. dialect:: mysql+aiomysql
    :name: aiomysql
    :dbapi: aiomysql
    :connectstring: mysql+aiomysql://user:password@host:port/dbname[?key=value&key=value...]
    :url: https://github.com/aio-libs/aiomysql

The aiomysql dialect is SQLAlchemy's second Python asyncio dialect.

Using a special asyncio mediation layer, the aiomysql dialect is usable
as the backend for the :ref:`SQLAlchemy asyncio <asyncio_toplevel>`
extension package.

This dialect should normally be used only with the
:func:`_asyncio.create_async_engine` engine creation function::

    from sqlalchemy.ext.asyncio import create_async_engine

    engine = create_async_engine(
        "mysql+aiomysql://user:pass@hostname/dbname?charset=utf8mb4"
    )

)annotations)
ModuleType)Any)Dict)Optional)Tuple)TYPE_CHECKING)Union) _connection_ping_reconnects_true)MySQLDialect_pymysql)pool)util)AsyncAdapt_dbapi_connection)AsyncAdapt_dbapi_cursor)AsyncAdapt_dbapi_module)AsyncAdapt_dbapi_ss_cursor)AsyncAdapt_terminate)langhelpers)await_fallback)
await_only)AsyncIODBAPIConnection)AsyncIODBAPICursor)ConnectArgsType)DBAPIConnection)DBAPICursor)DBAPIModule)PoolProxiedConnection)URLc                  &    ] tR t^CtRtR R ltRtR# )AsyncAdapt_aiomysql_cursorc                    V ^8  d   QhRRRR/#    
connectionr   returnr    )formats   "~   /Users/wind/Downloads/Coruna-main学习资料A/backend/venv/lib/python3.14/site-packages/sqlalchemy/dialects/mysql/aiomysql.py__annotate__'AsyncAdapt_aiomysql_cursor.__annotate__F   s      F F0F	F    c                	`    VP                  V P                  P                  P                  4      # N)cursor_adapt_connectiondbapiCursorselfr#   s   &&r'   _make_new_cursor+AsyncAdapt_aiomysql_cursor._make_new_cursorF   s'       !7!7!=!=!D!DEEr*   r%   N__name__
__module____qualname____firstlineno__	__slots__r3   __static_attributes__r%   r*   r'   r   r   C   s    IF Fr*   r   c                  &    ] tR t^LtRtR R ltRtR# )AsyncAdapt_aiomysql_ss_cursorc                    V ^8  d   QhRRRR/# r!   r%   )r&   s   "r'   r(   *AsyncAdapt_aiomysql_ss_cursor.__annotate__Q   s     
 
0
	
r*   c                	    VP                  V P                  P                  P                  P                  P
                  4      # r,   )r-   r.   r/   aiomysqlcursorsSSCursorr1   s   &&r'   r3   .AsyncAdapt_aiomysql_ss_cursor._make_new_cursorQ   s8       ""((1199BB
 	
r*   r%   Nr5   r%   r*   r'   r=   r=   L   s     I
 
r*   r=   c                  z    ] tR t^YtRt]t]tRR R llt	R R lt
R R ltR R ltR	 R
 ltR R ltR R ltRtR# )AsyncAdapt_aiomysql_connectionc                    V ^8  d   QhRRRR/# )r"   	reconnectboolr$   Noner%   )r&   s   "r'   r(   +AsyncAdapt_aiomysql_connection.__annotate__a   s     1 1d 1t 1r*   c                	    V'       d   Q hV P                   P                  '       d.   V P                  V P                  P	                  R R7      4       R# V P                  V P                  P	                  4       4       R# )F)rH   N)r/   _send_false_to_pingawait__connectionping)r2   rH   s   &&r'   rP   #AsyncAdapt_aiomysql_connection.pinga   sU    }::)))KK((--->?KK((--/0r*   c                   V ^8  d   QhRR/# )r"   r$   zOptional[str]r%   )r&   s   "r'   r(   rK   h   s     5 5M 5r*   c                	6    V P                   P                  4       # r,   )rO   character_set_namer2   s   &r'   rT   1AsyncAdapt_aiomysql_connection.character_set_nameh   s    2244r*   c                    V ^8  d   QhRRRR/# )r"   valuer   r$   rJ   r%   )r&   s   "r'   r(   rK   k   s     8 8 8 8r*   c                	Z    V P                  V P                  P                  V4      4       R # r,   )rN   rO   
autocommit)r2   rX   s   &&r'   rZ   )AsyncAdapt_aiomysql_connection.autocommitk   s    D$$//67r*   c                   V ^8  d   QhRR/# r"   r$   rI   r%   )r&   s   "r'   r(   rK   n   s     1 1 1r*   c                	6    V P                   P                  4       # r,   )rO   get_autocommitrU   s   &r'   r_   -AsyncAdapt_aiomysql_connection.get_autocommitn   s    ..00r*   c                   V ^8  d   QhRR/# r"   r$   rJ   r%   )r&   s   "r'   r(   rK   q   s     6 6t 6r*   c                	X    V P                  V P                  P                  4       4       R # r,   )rN   rO   ensure_closedrU   s   &r'   close$AsyncAdapt_aiomysql_connection.closeq   s    D$$2245r*   c                   V ^8  d   QhRR/# rb   r%   )r&   s   "r'   r(   rK   t   s     / / /r*   c                	V   "   V P                   P                  4       G R j  xL
  R #  L5ir,   )rO   rd   rU   s   &r'   _terminate_graceful_close8AsyncAdapt_aiomysql_connection._terminate_graceful_closet   s     ,,...s   )')c                   V ^8  d   QhRR/# rb   r%   )r&   s   "r'   r(   rK   w   s     ! ! !r*   c                	:    V P                   P                  4        R # r,   )rO   re   rU   s   &r'   _terminate_force_close5AsyncAdapt_aiomysql_connection._terminate_force_closew   s     r*   r%   N)F)r6   r7   r8   r9   r:   r   _cursor_clsr=   _ss_cursor_clsrP   rT   rZ   r_   re   ri   rm   r;   r%   r*   r'   rF   rF   Y   s;     I,K2N15816/! !r*   rF   c                  *    ] tR t^|tRt]! ]4      tRtR# )&AsyncAdaptFallback_aiomysql_connectionr%   N)	r6   r7   r8   r9   r:   staticmethodr   rN   r;   r%   r*   r'   rr   rr   |   s    I.)Fr*   rr   c                  p    ] tR t^tR R ltR R ltR R lt]P                  R R l4       t	R	 R
 lt
RtR# )AsyncAdapt_aiomysql_dbapic                    V ^8  d   QhRRRR/# )r"   rA   r   pymysqlr%   )r&   s   "r'   r(   &AsyncAdapt_aiomysql_dbapi.__annotate__   s     E E Ej Er*   c                	    Wn         W n        R V n        V P                  4        V P	                  4       w  V n        V n        R# )r&   N)rA   rw   
paramstyle_init_dbapi_attributes_init_cursors_subclassesr0   rC   )r2   rA   rw   s   &&&r'   __init__"AsyncAdapt_aiomysql_dbapi.__init__   s6     "##%%)%B%B%D"T]r*   c                   V ^8  d   QhRR/# rb   r%   )r&   s   "r'   r(   rx      s     = = =r*   c           	     	    R F#  p\        W\        V P                  V4      4       K%  	  R F#  p\        W\        V P                  V4      4       K%  	  R# )WarningN)r   ErrorInterfaceError	DataErrorDatabaseErrorOperationalErrorr   IntegrityErrorProgrammingErrorInternalErrorNotSupportedError)NUMBERSTRINGDATETIMEBINARY	TIMESTAMPBinary)setattrgetattrrA   rw   )r2   names   & r'   r{   0AsyncAdapt_aiomysql_dbapi._init_dbapi_attributes   sH    
D Dt <=

D Dd ;<
r*   c               $    V ^8  d   QhRRRRRR/# )r"   argr   kwr$   rF   r%   )r&   s   "r'   r(   rx      s"      C s /M r*   c           
     	   VP                  R R4      pVP                  RV P                  P                  4      p\        P                  ! V4      '       d   \        V \        V! V/ VB 4      4      # \        V \        V! V/ VB 4      4      # )async_fallbackFasync_creator_fn)	poprA   connectr   asboolrr   r   rF   r   )r2   r   r   r   
creator_fns   &*,  r'   r   !AsyncAdapt_aiomysql_dbapi.connect   s     0%8VV.0E0EF
;;~&&9z35"56 
 2:s1b12 r*   c                   V ^8  d   QhRR/# r]   r%   )r&   s   "r'   r(   rx      s     @ @T @r*   c                     \        R4      P                  P                  p\        V4      #   \        \
        3 d     R# i ; i)zdetermine if aiomysql has deprecated, changed the default of,
or removed the 'reconnect' argument of connection.ping().

See #13306 and #10492

zaiomysql.connectionT)
__import__r#   
Connectionr
   ImportErrorAttributeError)r2   r   s   & r'   rM   -AsyncAdapt_aiomysql_dbapi._send_false_to_ping   sG    	@#%j  4J?? ^, 		s   , A Ac                   V ^8  d   QhRR/# )r"   r$   z-Tuple[AsyncIODBAPICursor, AsyncIODBAPICursor]r%   )r&   s   "r'   r(   rx      s        	6 r*   c                	     ! R  RV P                   P                  4      p ! R RV P                   P                  4      pW3# )c                  "    ] tR t^tR R ltRtR# )BAsyncAdapt_aiomysql_dbapi._init_cursors_subclasses.<locals>.Cursorc                    V ^8  d   QhRRRR/# r"   connr   r$   rJ   r%   )r&   s   "r'   r(   OAsyncAdapt_aiomysql_dbapi._init_cursors_subclasses.<locals>.Cursor.__annotate__         2r*   c                	   "   R # 5ir,   r%   r2   r   s   &&r'   _show_warningsQAsyncAdapt_aiomysql_dbapi._init_cursors_subclasses.<locals>.Cursor._show_warnings   
         r%   Nr6   r7   r8   r9   r   r;   r%   r*   r'   r0   r           r*   r0   c                  "    ] tR t^tR R ltRtR# )DAsyncAdapt_aiomysql_dbapi._init_cursors_subclasses.<locals>.SSCursorc                    V ^8  d   QhRRRR/# r   r%   )r&   s   "r'   r(   QAsyncAdapt_aiomysql_dbapi._init_cursors_subclasses.<locals>.SSCursor.__annotate__   r   r*   c                	   "   R # 5ir,   r%   r   s   &&r'   r   SAsyncAdapt_aiomysql_dbapi._init_cursors_subclasses.<locals>.SSCursor._show_warnings   r   r   r%   Nr   r%   r*   r'   rC   r      r   r*   rC   )rA   r0   rC   )r2   r0   rC   s   &  r'   r|   2AsyncAdapt_aiomysql_dbapi._init_cursors_subclasses   s9    	T]])) 		t}}-- 	 r*   )r0   rC   rA   rz   rw   N)r6   r7   r8   r9   r}   r{   r   r   memoized_propertyrM   r|   r;   r%   r*   r'   ru   ru      s8    E=4 ""@ #@"   r*   ru   c                     a  ] tR t^tRtRtRt]tRt	Rt
]R R l4       t]R R l4       tR R ltRR	 V 3R
 llltR V 3R lltR R ltR R ltRtV ;t# )MySQLDialect_aiomysqlrA   Tc                   V ^8  d   QhRR/# )r"   r$   ru   r%   )r&   s   "r'   r(   "MySQLDialect_aiomysql.__annotate__   s     
 
6 
r*   c                	>    \        \        R 4      \        R4      4      # )rA   rw   )ru   r   )clss   &r'   import_dbapi"MySQLDialect_aiomysql.import_dbapi   s    (z"Jy$9
 	
r*   c                    V ^8  d   QhRRRR/# )r"   urlr   r$   typer%   )r&   s   "r'   r(   r      s     . . . .r*   c                	    VP                   P                  R R4      p\        P                  ! V4      '       d   \        P
                  # \        P                  # )r   F)querygetr   r   r   FallbackAsyncAdaptedQueuePoolAsyncAdaptedQueuePool)r   r   r   s   && r'   get_pool_class$MySQLDialect_aiomysql.get_pool_class   s>    '7?;;~&&555---r*   c                    V ^8  d   QhRRRR/# )r"   dbapi_connectionr   r$   rJ   r%   )r&   s   "r'   r(   r      s     % %_ % %r*   c                	&    VP                  4        R # r,   )	terminate)r2   r   s   &&r'   do_terminate"MySQLDialect_aiomysql.do_terminate   s    ""$r*   c               $    V ^8  d   QhRRRRRR/# )r"   r   r   _translate_argszOptional[Dict[str, Any]]r$   r   r%   )r&   s   "r'   r(   r      s$     
 

)A
	
r*   c                	<   < \         SV `  V\        R RR7      R7      # )userdb)usernamedatabase)r   )supercreate_connect_argsdict)r2   r   r   	__class__s   &&&r'   r   )MySQLDialect_aiomysql.create_connect_args   s(     w*v!E + 
 	
r*   c               (    V ^8  d   QhRRRRRRRR/# )	r"   ezDBAPIModule.Errorr#   z7Optional[Union[PoolProxiedConnection, DBAPIConnection]]r-   zOptional[DBAPICursor]r$   rI   r%   )r&   s   "r'   r(   r      s3     
, 
,
, L
, &	
,
 

,r*   c                	p   < \         SV `  WV4      '       d   R # \        V4      P                  4       pRV9   # )Tznot connected)r   is_disconnectstrlower)r2   r   r#   r-   str_er   s   &&&& r'   r   #MySQLDialect_aiomysql.is_disconnect   s4     7 77FLLNE"e++r*   c                   V ^8  d   QhRR/# )r"   r$   intr%   )r&   s   "r'   r(   r     s     ! ! !r*   c                	&    ^ RI Hp VP                  # )    )CLIENT)pymysql.constantsr   
FOUND_ROWS)r2   r   s   & r'   _found_rows_client_flag-MySQLDialect_aiomysql._found_rows_client_flag  s    ,   r*   c                    V ^8  d   QhRRRR/# )r"   r#   r   r$   r   r%   )r&   s   "r'   r(   r     s     & &)&	&r*   c                	    VP                   # r,   )rO   r1   s   &&r'   get_driver_connection+MySQLDialect_aiomysql.get_driver_connection  s     %%%r*   r%   r,   )r6   r7   r8   r9   driversupports_statement_cachesupports_server_side_cursorsr=   	_sscursoris_asynchas_terminateclassmethodr   r   r   r   r   r   r   r;   __classcell__)r   s   @r'   r   r      sq    F##' -IHM
 

 . .%
 

, 
,!
& &r*   r   N)-__doc__
__future__r   typesr   typingr   r   r   r   r   r	   rw   r
   r    r   r   connectors.asyncior   r   r   r   r   r   util.concurrencyr   r   r   r   engine.interfacesr   r   r   r   r   
engine.urlr   r   r=   rF   rr   ru   r   dialectr%   r*   r'   <module>r     s   0 #         5 )   = 9 9 < 6  . *<84400:!F!8 F

 :

 !5 !F*-K *S  7 S l7&0 7&t  r*   