+
    i@                    L   R t ^ RIHt ^ RI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! ^RI"H#t# ^RI"H$t$ ]'       d=   ^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"I0H1t1  ! R# R$4      t2 ! R% R&]24      t3 ! R' R(]]!4      t4 ! R) R*]44      t5 ! R+ R,]4      t6 ! R- R.]4      t7 ! R/ R0]4      t8]8t9R# )1a	  

.. dialect:: sqlite+aiosqlite
    :name: aiosqlite
    :dbapi: aiosqlite
    :connectstring: sqlite+aiosqlite:///file_path
    :url: https://pypi.org/project/aiosqlite/

The aiosqlite dialect provides support for the SQLAlchemy asyncio interface
running on top of pysqlite.

aiosqlite is a wrapper around pysqlite that uses a background thread for
each connection.   It does not actually use non-blocking IO, as SQLite
databases are not socket-based.  However it does provide a working asyncio
interface that's useful for testing and prototyping purposes.

Using a special asyncio mediation layer, the aiosqlite 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("sqlite+aiosqlite:///filename")

The URL passes through all arguments to the ``pysqlite`` driver, so all
connection arguments are the same as they are for that of :ref:`pysqlite`.

.. _aiosqlite_udfs:

User-Defined Functions
----------------------

aiosqlite extends pysqlite to support async, so we can create our own user-defined functions (UDFs)
in Python and use them directly in SQLite queries as described here: :ref:`pysqlite_udfs`.

.. _aiosqlite_serializable:

Serializable isolation / Savepoints / Transactional DDL (asyncio version)
-------------------------------------------------------------------------

A newly revised version of this important section is now available
at the top level of the SQLAlchemy SQLite documentation, in the section
:ref:`sqlite_transactions`.


.. _aiosqlite_pooling:

Pooling Behavior
----------------

The SQLAlchemy ``aiosqlite`` DBAPI establishes the connection pool differently
based on the kind of SQLite database that's requested:

* When a ``:memory:`` SQLite database is specified, the dialect by default
  will use :class:`.StaticPool`. This pool maintains a single
  connection, so that all access to the engine
  use the same ``:memory:`` database.
* When a file-based database is specified, the dialect will use
  :class:`.AsyncAdaptedQueuePool` as the source of connections.

  .. versionchanged:: 2.0.38

    SQLite file database engines now use :class:`.AsyncAdaptedQueuePool` by default.
    Previously, :class:`.NullPool` were used.  The :class:`.NullPool` class
    may be used by specifying it via the
    :paramref:`_sa.create_engine.poolclass` parameter.

)annotationsN)deque)partial)Thread)
ModuleType)Any)cast)Deque)Iterator)NoReturn)Optional)Sequence)TYPE_CHECKING)Union)SQLiteExecutionContext)SQLiteDialect_pysqlite)pool)util)AsyncAdapt_dbapi_module)AsyncAdapt_terminate)AdaptedConnection)await_fallback)
await_only)AsyncIODBAPIConnection)AsyncIODBAPICursor)_DBAPICursorDescription)_DBAPIMultiExecuteParams)_DBAPISingleExecuteParams)DBAPIConnection)DBAPICursor)DBAPIModule)URL)PoolProxiedConnectionc                      ] tR t^xtRtRtR R ltR R ltR R l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 R lltR R ltRtR# )AsyncAdapt_aiosqlite_cursorFc                   V ^8  d   QhRR/# )   adapt_connectionAsyncAdapt_aiosqlite_connection )formats   "ڍC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py__annotate__(AsyncAdapt_aiosqlite_cursor.__annotate__   s     ) ))H )    c                	    Wn         VP                  V n        VP                  V n        ^V n        RV n        RV n        \        4       V n        R# )   N)_adapt_connection_connectionawait_	arraysizerowcountdescriptionr   _rows)selfr'   s   &&r+   __init__$AsyncAdapt_aiosqlite_cursor.__init__   sB    !1+77&-->B!&
r.   c                   V ^8  d   QhRR/# r&   returnNoner)   )r*   s   "r+   r,   r-      s       r.   c                	   "   R # 5iNr)   r9   s   &r+   _async_soft_close-AsyncAdapt_aiosqlite_cursor._async_soft_close   s     s   c                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r-      s      t r.   c                	:    V P                   P                  4        R # rA   )r8   clearrB   s   &r+   close!AsyncAdapt_aiosqlite_cursor.close   s    

r.   Nc               $    V ^8  d   QhRRRRRR/# )r&   	operationr   
parametersz#Optional[_DBAPISingleExecuteParams]r>   r)   )r*   s   "r+   r,   r-      s(     < << 8< 
	<r.   c                	    V P                  V P                  P                  4       4      pVf"   V P                  VP                  V4      4       M V P                  VP                  W4      4       VP                  '       d`   VP                  V n        R;V n        V n        V P                  '       g.   \        V P                  VP                  4       4      4      V n
        M)R V n        VP
                  V n        VP                  V n        V P                  '       g"   V P                  VP                  4       4       R # W0n        R #   \         d'   pT P                  P                  T4        R p?R # R p?ii ; i)Nr1   )r4   r3   cursorexecuter7   	lastrowidr6   server_sider   fetchallr8   rH   _cursor	Exceptionr2   _handle_exception)r9   rK   rL   rS   errors   &&&  r+   rO   #AsyncAdapt_aiosqlite_cursor.execute   s   	<*.++d6F6F6M6M6O*PG!GOOI67GOOIBC"""#*#6#6 133'''!&t{{73C3C3E'F!GDJ#' !(!2!2 ' 0 0###GMMO,& 	<""44U;;	<s+   A?E BE E =E E6E11E6c               $    V ^8  d   QhRRRRRR/# )r&   rK   r   seq_of_parametersr   r>   r)   )r*   s   "r+   r,   r-      s(     < << 4< 
	<r.   c                	    V P                  V P                  P                  4       4      pV P                  VP                  W4      4       R V n        VP
                  V n        VP                  V n        V P                  VP                  4       4       R #   \         d'   pT P                  P                  T4        R p?R # R p?ii ; irA   )r4   r3   rN   executemanyr7   rP   r6   rH   rT   r2   rU   )r9   rK   rY   rS   rV   s   &&&  r+   r[   'AsyncAdapt_aiosqlite_cursor.executemany   s    
	<*.++d6F6F6M6M6O*PGKK++IIJ#D$..DN#,,DMKK( 	<""44U;;	<s   BB C CCc                    V ^8  d   QhRRRR/# )r&   
inputsizesr   r>   r?   r)   )r*   s   "r+   r,   r-      s        r.   c                	    R # rA   r)   )r9   r^   s   &*r+   setinputsizes)AsyncAdapt_aiosqlite_cursor.setinputsizes   s    r.   c                   V ^8  d   QhRR/# )r&   r>   zIterator[Any]r)   )r*   s   "r+   r,   r-      s     ' '- 'r.   c              #  	n   "   V P                   '       d   V P                   P                  4       x  K0  R # 5irA   r8   popleftrB   s   &r+   __iter__$AsyncAdapt_aiosqlite_cursor.__iter__   s&     jjj**$$&& s   5 5c                   V ^8  d   QhRR/# r&   r>   zOptional[Any]r)   )r*   s   "r+   r,   r-      s      - r.   c                	^    V P                   '       d   V P                   P                  4       # R # rA   rd   rB   s   &r+   fetchone$AsyncAdapt_aiosqlite_cursor.fetchone   s!    :::::%%''r.   c                    V ^8  d   QhRRRR/# r&   sizezOptional[int]r>   Sequence[Any]r)   )r*   s   "r+   r,   r-      s     A Am A} Ar.   c                	    Vf   V P                   pV P                  p\        \        V\	        V4      4      4       Uu. uF  q2P                  4       NK  	  up# u upi rA   )r5   r8   rangeminlenre   )r9   ro   rr_s   &&  r+   	fetchmany%AsyncAdapt_aiosqlite_cursor.fetchmany   sG    <>>DZZ&+Cc"g,>&?@&?

&?@@@s   Ac                   V ^8  d   QhRR/# r&   r>   rp   r)   )r*   s   "r+   r,   r-      s      - r.   c                	d    \        V P                  4      pV P                  P                  4        V# rA   )listr8   rG   )r9   retvals   & r+   rR   $AsyncAdapt_aiosqlite_cursor.fetchall   s%    djj!

r.   )	r2   r3   rS   r8   r5   r4   r7   rP   r6   )r2   r3   r7   r4   r8   r5   r6   rP   rA   )__name__
__module____qualname____firstlineno__	__slots__rQ   r:   rC   rH   rO   r[   r`   rf   rk   rw   rR   __static_attributes__r)   r.   r+   r$   r$   x   sI    	I K)<@<'A r.   r$   c                  j   a  ] tR t^tRtRtR V 3R lltR R ltR R ltRR	 R
 llt	R R lt
RtV ;t# )AsyncAdapt_aiosqlite_ss_cursorrS   Tc               $    V ^8  d   QhRRRRRR/# )r&   argr   kwr>   r?   r)   )r*   s   "r+   r,   +AsyncAdapt_aiosqlite_ss_cursor.__annotate__   s!     : :S : : :r.   c                	6   < \         SV `  ! V/ VB  R V n        R # rA   )superr:   rS   )r9   r   r   	__class__s   &*,r+   r:   'AsyncAdapt_aiosqlite_ss_cursor.__init__   s    #$$59r.   c                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r      s        t  r.   c                	    V P                   e3   V P                  V P                   P                  4       4       R V n         R # R # rA   )rS   r4   rH   rB   s   &r+   rH   $AsyncAdapt_aiosqlite_ss_cursor.close   s1    <<#KK**,-DL $r.   c                   V ^8  d   QhRR/# ri   r)   )r*   s   "r+   r,   r           4 4- 4r.   c                	t    V P                   f   Q hV P                  V P                   P                  4       4      # rA   )rS   r4   rk   rB   s   &r+   rk   'AsyncAdapt_aiosqlite_ss_cursor.fetchone   .    ||'''{{4<<00233r.   c                    V ^8  d   QhRRRR/# rn   r)   )r*   s   "r+   r,   r      s     > >m >} >r.   c                	    V P                   f   Q hVf   V P                  pV P                  V P                   P                  VR7      4      # )N)ro   )rS   r5   r4   rw   )r9   ro   s   &&r+   rw   (AsyncAdapt_aiosqlite_ss_cursor.fetchmany   sA    ||'''<>>D{{4<<11t1<==r.   c                   V ^8  d   QhRR/# rz   r)   )r*   s   "r+   r,   r      r   r.   c                	t    V P                   f   Q hV P                  V P                   P                  4       4      # rA   )rS   r4   rR   rB   s   &r+   rR   'AsyncAdapt_aiosqlite_ss_cursor.fetchall   r   r.   )rS   rA   )r   r   r   r   r   rQ   r:   rH   rk   rw   rR   r   __classcell__r   s   @r+   r   r      s2     IK: : 
4>4 4r.   r   c                      ] tR tRt]! ]4      tRtR R lt]	R R l4       t
]
P                  R R l4       t
R R	 l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 R ltRtR# )r(      c               $    V ^8  d   QhRRRRRR/# )r&   dbapir   
connectionr   r>   r?   r)   )r*   s   "r+   r,   ,AsyncAdapt_aiosqlite_connection.__annotate__  s"     & &c &/E &$ &r.   c                	    Wn         W n        R # rA   )r   r3   )r9   r   r   s   &&&r+   r:   (AsyncAdapt_aiosqlite_connection.__init__  s    
%r.   c                   V ^8  d   QhRR/# )r&   r>   Optional[str]r)   )r*   s   "r+   r,   r   	  s     ; ; ;r.   c                	J    \        \        V P                  P                  4      # rA   )r   strr3   isolation_levelrB   s   &r+   r   /AsyncAdapt_aiosqlite_connection.isolation_level  s    C))99::r.   c                    V ^8  d   QhRRRR/# )r&   valuer   r>   r?   r)   )r*   s   "r+   r,   r     s     * *] *t *r.   c                	\   R  R lp\        W P                  P                  V4      p\        P                  ! 4       P                  4       pV P                  P                  P                  WC34        V P                  V4       R#   \         d   pT P                  T4        Rp?R# Rp?ii ; i)c               $    V ^8  d   QhRRRRRR/# )r&   r   r(   r   r   r>   r?   r)   )r*   s   "r+   r,   EAsyncAdapt_aiosqlite_connection.isolation_level.<locals>.__annotate__  s$     	/ 	/7	/@M	/	/r.   c                    Wn         R # rA   )r   )r   r   s   &&r+   set_iso@AsyncAdapt_aiosqlite_connection.isolation_level.<locals>.set_iso  s
     */&r.   N)r   r3   _connasyncioget_event_loopcreate_future_tx
put_nowaitr4   rT   rU   )r9   r   r   functionfuturerV   s   &&    r+   r   r     s    	/
 7$4$4$:$:EB'')779''(:;	*KK 	*""5))	*s   1B B+B&&B+c               $    V ^8  d   QhRRRRRR/# )r&   argsr   r   r>   r?   r)   )r*   s   "r+   r,   r   "  s!     * *S * * *r.   c                	     V P                  V P                  P                  ! V/ VB 4       R #   \         d   pT P	                  T4        R p?R # R p?ii ; irA   )r4   r3   create_functionrT   rU   )r9   r   r   rV   s   &*, r+   r   /AsyncAdapt_aiosqlite_connection.create_function"  sJ    	*KK((88$E"EF 	*""5))	*s   +/ AAAc                    V ^8  d   QhRRRR/# )r&   rQ   boolr>   r$   r)   )r*   s   "r+   r,   r   (  s     5 5$ 53N 5r.   c                	>    V'       d   \        V 4      # \        V 4      # rA   )r   r$   )r9   rQ   s   &&r+   rN   &AsyncAdapt_aiosqlite_connection.cursor(  s    1$77.t44r.   c               $    V ^8  d   QhRRRRRR/# )r&   r   r   r   r>   r)   )r*   s   "r+   r,   r   .  s&     B BS B B Br.   c                	X    V P                  V P                  P                  ! V/ VB 4      # rA   )r4   r3   rO   )r9   r   r   s   &*,r+   rO   'AsyncAdapt_aiosqlite_connection.execute.  s'    {{4++33T@R@AAr.   c                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r   1  s     * *$ *r.   c                	     V P                  V P                  P                  4       4       R #   \         d   pT P	                  T4        R p?R # R p?ii ; irA   )r4   r3   rollbackrT   rU   r9   rV   s   & r+   r   (AsyncAdapt_aiosqlite_connection.rollback1  sC    	*KK((1134 	*""5))	*   )- AAAc                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r   7  s     * * *r.   c                	     V P                  V P                  P                  4       4       R #   \         d   pT P	                  T4        R p?R # R p?ii ; irA   )r4   r3   commitrT   rU   r   s   & r+   r   &AsyncAdapt_aiosqlite_connection.commit7  sC    	*KK((//12 	*""5))	*r   c                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r   =  s     * *t *r.   c                	     V P                  V P                  P                  4       4       R #   \         d     R # \         d   pT P                  T4        R p?R # R p?ii ; irA   )r4   r3   rH   
ValueErrorrT   rU   r   s   & r+   rH   %AsyncAdapt_aiosqlite_connection.close=  sP    	*KK((..01 		  	*""5))	*s    )- A!A!A!AA!c                    V ^8  d   QhRRRR/# )r&   rV   rT   r>   r   r)   )r*   s   "r+   r,   r   M  s     	 	y 	X 	r.   c                	    \        V\        4      '       d?   VP                  ^ ,          R8X  d'   V P                  P                  P                  R4      VhVh)    no active connection)
isinstancer   r   r   sqliteOperationalErrorr   s   &&r+   rU   1AsyncAdapt_aiosqlite_connection._handle_exceptionM  sJ    uj))

1!77**##44& Kr.   c                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r   X  s     ' ' 'r.   c                V   "   V P                   P                  4       G Rj  xL
  R#  L5i)z"Try to close connection gracefullyN)r3   rH   rB   s   &r+   _terminate_graceful_close9AsyncAdapt_aiosqlite_connection._terminate_graceful_closeX  s     $$&&&s   )')c                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r   \  s       r.   c                     V P                   P                  pV! 4        R#   \         d   p\        R4      ThRp?ii ; i)zTerminate the connectionz:terminate_force_close() not implemented by this DBAPI shimN)r3   stopAttributeErrorNotImplementedError)r9   methaes   &  r+   _terminate_force_close6AsyncAdapt_aiosqlite_connection._terminate_force_close\  sD    
	##((D F  	%L	s   ! =8=)r3   r   N)r   )F)r   r   r   r   staticmethodr   r4   r   r:   propertyr   setterr   rN   rO   r   r   rH   rU   r   r   r   r)   r.   r+   r(   r(      sw    *%FI& ; ; * ***5B*** 	' r.   r(   c                  *    ] tR tRtRt]! ]4      tRtR# )'AsyncAdaptFallback_aiosqlite_connectionik  r)   N)	r   r   r   r   r   r   r   r4   r   r)   r.   r+   r   r   k  s    I.)Fr.   r   c                  :    ] tR tRtR R ltR R ltR R ltRtR	# )
AsyncAdapt_aiosqlite_dbapiiq  c                    V ^8  d   QhRRRR/# )r&   	aiosqliter   r   r)   )r*   s   "r+   r,   'AsyncAdapt_aiosqlite_dbapi.__annotate__r  s     & &* &j &r.   c                	    Wn         W n        R V n        \        VP                  R4      V n        V P                  4        R# )qmarkr   N)r   r   
paramstylehasattr
Connectionhas_stop_init_dbapi_attributes)r9   r   r   s   &&&r+   r:   #AsyncAdapt_aiosqlite_dbapi.__init__r  s3    "!	 4 4f=##%r.   c                   V ^8  d   QhRR/# r=   r)   )r*   s   "r+   r,   r   y  s     < < <r.   c           	     	    R F#  p\        W\        V P                  V4      4       K%  	  R F#  p\        W\        V P                  V4      4       K%  	  R F#  p\        W\        V P                  V4      4       K%  	  R# )DatabaseErrorN)r   ErrorIntegrityErrorNotSupportedErrorr   ProgrammingErrorsqlite_versionsqlite_version_info)PARSE_COLNAMESPARSE_DECLTYPES)Binary)setattrgetattrr   r   )r9   names   & r+   r   1AsyncAdapt_aiosqlite_dbapi._init_dbapi_attributesy  sg    	
D D =>	
 :DDT :; :  DDT :;  r.   c               $    V ^8  d   QhRRRRRR/# )r&   r   r   r   r>   r(   r)   )r*   s   "r+   r,   r     s"      C s /N r.   c                	   VP                  R R4      pVP                  RR4      pV'       d
   V! V/ VB pMKV P                  P                  ! V/ VB p\        V\        4      '       d	   RVn        MRVP                  n        \        P                  ! V4      '       d   \        V \        V4      4      # \        V \        V4      4      # )async_fallbackFasync_creator_fnNT)popr   connectr   r   daemon_threadr   asboolr   r   r(   r   )r9   r   r   r  
creator_fnr   s   &*,   r+   r  "AsyncAdapt_aiosqlite_dbapi.connect  s     0%8VV.5
#S/B/J//;;J *f--$(
! -1
"");;~&&:z* 
 3:& r.   )r   r   r   r   N)r   r   r   r   r:   r   r  r   r)   r.   r+   r   r   q  s    &<& r.   r   c                  "    ] tR tRtR R ltRtR# ) SQLiteExecutionContext_aiosqlitei  c                   V ^8  d   QhRR/# )r&   r>   r   r)   )r*   s   "r+   r,   -SQLiteExecutionContext_aiosqlite.__annotate__  s     ? ?; ?r.   c                	:    V P                   P                  R R7      # )T)rQ   )_dbapi_connectionrN   rB   s   &r+   create_server_side_cursor:SQLiteExecutionContext_aiosqlite.create_server_side_cursor  s    %%,,,>>r.   r)   N)r   r   r   r   r  r   r)   r.   r+   r  r    s    ? ?r.   r  c                     a  ] tR tRtRtRtRtRtRt]	t
R V 3R llt]R R l4       t]R R	 l4       tR
 V 3R lltR R ltR R ltRtV ;t# )SQLiteDialect_aiosqlitei  r   Tc                   V ^8  d   QhRR/# )r&   kwargsr   r)   )r*   s   "r+   r,   $SQLiteDialect_aiosqlite.__annotate__  s     ' ' 'r.   c                	   < \         SV `  ! R/ VB  V P                  '       d(   V P                  P                  '       g
   R V n        R# R# R# )FNr)   )r   r:   r   r   has_terminate)r9   r$  r   s   &,r+   r:    SQLiteDialect_aiosqlite.__init__  s:    "6":::djj111!&D 2:r.   c                   V ^8  d   QhRR/# )r&   r>   r   r)   )r*   s   "r+   r,   r%    s     
 
7 
r.   c                	>    \        \        R 4      \        R4      4      # )r   sqlite3)r   
__import__)clss   &r+   import_dbapi$SQLiteDialect_aiosqlite.import_dbapi  s    ){#Z	%:
 	
r.   c                    V ^8  d   QhRRRR/# )r&   urlr!   r>   ztype[pool.Pool]r)   )r*   s   "r+   r,   r%    s     # # # #r.   c                	p    V P                  V4      '       d   \        P                  # \        P                  # rA   )_is_url_file_dbr   AsyncAdaptedQueuePool
StaticPool)r-  r1  s   &&r+   get_pool_class&SQLiteDialect_aiosqlite.get_pool_class  s)    s##---??"r.   c               (    V ^8  d   QhRRRRRRRR/# )	r&   ezDBAPIModule.Errorr   z7Optional[Union[PoolProxiedConnection, DBAPIConnection]]rN   zOptional[DBAPICursor]r>   r   r)   )r*   s   "r+   r,   r%    s3     < << L< &	<
 
<r.   c                	   < \        R V P                  4      V n        \        WP                  P                  4      '       d   R\	        V4      9   d   R# \
        SV `  WV4      # )r    r   T)r   r   r   r   r   r   is_disconnect)r9   r9  r   rN   r   s   &&&&r+   r;  %SQLiteDialect_aiosqlite.is_disconnect  sR     -4
zz**
 
$A.w$QF;;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                   # rA   )r3   )r9   r   s   &&r+   get_driver_connection-SQLiteDialect_aiosqlite.get_driver_connection  s     %%%r.   c                    V ^8  d   QhRRRR/# )r&   dbapi_connectionr   r>   r?   r)   )r*   s   "r+   r,   r%    s     % %_ % %r.   c                	&    VP                  4        R # rA   )	terminate)r9   rB  s   &&r+   do_terminate$SQLiteDialect_aiosqlite.do_terminate  s    ""$r.   )r   r'  )r   r   r   r   driversupports_statement_cacheis_asyncr'  supports_server_side_cursorsr  execution_ctx_clsr:   classmethodr.  r6  r;  r?  rE  r   r   r   s   @r+   r"  r"    so    F#HM#' 8' '
 
 

 # #< <&
% %r.   r"  ):__doc__
__future__r   r   collectionsr   	functoolsr   	threadingr   typesr   typingr   r   r	   r
   r   r   r   r   r   baser   pysqliter    r   r   connectors.asyncior   r   enginer   util.concurrencyr   r   r   r   engine.interfacesr   r   r   r   r   r    
engine.urlr!   	pool.baser"   r$   r   r(   r   r   r  r"  dialectr)   r.   r+   <module>r^     s   FN #                ( ,   9 6 ' . *<8<=>400!2f fR4%@ 4>h&:<M hV*.M *5!8 5p?'= ?
1%4 1%h "r.   