ó
    øÞ j·C  ã                  óH  • S r SSKJ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  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!K'J+r+  SS"K'J,r,  SS#K'J-r-  SS$K.J/r/  SS%K0J1r1   " S& S'5      r2 " S( S)\25      r3 " S* S+\\!5      r4 " S, S-\45      r5 " S. S/\5      r6 " S0 S1\5      r7 " S2 S3\5      r8\8r9g)4u  

.. 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.

.. _aiosqlite_memory:

Using a Memory Database with Multiple Coroutines
-------------------------------------------------

The default :class:`.StaticPool` used for ``:memory:`` databases forces all
coroutines to share a single DBAPI connection.  Because SQLite maintains only
one transaction state per connection, concurrent coroutines can interfere
with each other â€” a ``ROLLBACK`` in one coroutine will also discard
uncommitted work from any other coroutine using the same engine.

For async workloads where multiple :class:`.AsyncSession` or
:class:`.AsyncConnection` objects may be active simultaneously, use SQLite's
shared-cache URI mode instead.  This gives each checkout its own DBAPI
connection with independent transaction state while still sharing one
in-memory database::

    engine = create_async_engine(
        "sqlite+aiosqlite:///file::memory:?cache=shared&uri=true"
    )

Because this URL form is treated as a file-based database by the dialect,
:class:`.AsyncAdaptedQueuePool` is used automatically and no additional
configuration is needed.

See the pysqlite documentation at
:ref:`pysqlite_uri_shared_cache` for full details on shared-cache memory
databases, including how to use named databases to maintain multiple
independent in-memory databases within the same process.

é    )Ú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                  ó    • \ rS rSrSrS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S jrSS jrSSS jjrSS jrSrg)ÚAsyncAdapt_aiosqlite_cursoré—   )Ú_adapt_connectionÚ_connectionÚdescriptionÚawait_Ú_rowsÚ	arraysizeÚrowcountÚ	lastrowidFc                óœ   • Xl         UR                  U l        UR                  U l        SU l        SU l        S U l        [        5       U l        g )Nr   éÿÿÿÿ)r)   r*   r,   r.   r/   r+   r   r-   )ÚselfÚadapt_connections     Ú^/var/www/html/gaurav/venv/lib/python3.13/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.pyÚ__init__Ú$AsyncAdapt_aiosqlite_cursor.__init__¨   sB   € Ø!1ÔØ+×7Ñ7ˆÔØ&×-Ñ-ˆŒØˆŒØˆŒØ>BˆÔÜ!&£ˆ�
ó    c              ƒ  ó   #   • g 7f©N© ©r3   s    r5   Ú_async_soft_closeÚ-AsyncAdapt_aiosqlite_cursor._async_soft_close±   s   é € Øùs   ‚c                ó8   • U R                   R                  5         g r:   )r-   Úclearr<   s    r5   ÚcloseÚ!AsyncAdapt_aiosqlite_cursor.close´   s   € Ø�
‰
×ÑÕr8   Nc                óâ  •  U R                  U R                  R                  5       5      nUc!  U R                  UR                  U5      5        O U R                  UR                  X5      5        UR                  (       a^  UR                  U l        S=U l        U l        U R                  (       d-  [        U R                  UR                  5       5      5      U l
        O)S U l        UR
                  U l        UR                  U l        U R                  (       d   U R                  UR                  5       5        g X0l        g ! [         a%  nU R                  R                  U5         S nAg S nAff = f)Nr2   )r,   r*   ÚcursorÚexecuter+   r0   r/   Úserver_sider   Úfetchallr-   rA   Ú_cursorÚ	Exceptionr)   Ú_handle_exception)r3   Ú	operationÚ
parametersrH   Úerrors        r5   rE   Ú#AsyncAdapt_aiosqlite_cursor.execute·   s
  € ð	<Ø*.¯+©+°d×6FÑ6F×6MÑ6MÓ6OÓ*PˆGàÑ!Ø—‘˜GŸO™O¨IÓ6Õ7à—‘˜GŸO™O¨IÓBÔCà×"×"Ø#*×#6Ñ#6�Ô Ø13Ð3�” ¤à×'×'Ü!& t§{¡{°7×3CÑ3CÓ3EÓ'FÓ!G�D”Jøà#'�Ô Ø!(×!2Ñ!2�”Ø '× 0Ñ 0�”à×#×#Ø—‘˜GŸM™M›OÕ,à&•øÜó 	<Ø×"Ñ"×4Ñ4°U×;Ñ;ûð	<ús   ‚D5D? Ä8D? Ä?
E.Å	E)Å)E.c                óŒ  •  U R                  U R                  R                  5       5      nU R                  UR                  X5      5        S U l        UR
                  U l        UR                  U l        U R                  UR                  5       5        g ! [         a%  nU R                  R                  U5         S nAg S nAff = fr:   )r,   r*   rD   Úexecutemanyr+   r0   r/   rA   rI   r)   rJ   )r3   rK   Úseq_of_parametersrH   rM   s        r5   rP   Ú'AsyncAdapt_aiosqlite_cursor.executemany×   s–   € ð
	<Ø*.¯+©+°d×6FÑ6F×6MÑ6MÓ6OÓ*PˆGØ�K‰K˜×+Ñ+¨IÓIÔJØ#ˆDÔØ$×.Ñ.ˆDŒNØ#×,Ñ,ˆDŒMØ�K‰K˜Ÿ™›Õ(øÜó 	<Ø×"Ñ"×4Ñ4°U×;Ñ;ûð	<ús   ‚BB Â
CÂB>Â>Cc                ó   • g r:   r;   )r3   Ú
inputsizess     r5   ÚsetinputsizesÚ)AsyncAdapt_aiosqlite_cursor.setinputsizesæ   s   € Ør8   c              #  óŽ   #   • U R                   (       a0  U R                   R                  5       v •  U R                   (       a  M/  g g 7fr:   ©r-   Úpopleftr<   s    r5   Ú__iter__Ú$AsyncAdapt_aiosqlite_cursor.__iter__é   s*   é € Ø�j�jØ—*‘*×$Ñ$Ó&Ò&ð �j�j‹jùs   ‚?AÁAc                óZ   • U R                   (       a  U R                   R                  5       $ g r:   rX   r<   s    r5   ÚfetchoneÚ$AsyncAdapt_aiosqlite_cursor.fetchoneí   s   € Ø�:�:Ø—:‘:×%Ñ%Ó'Ð'àr8   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:   )r.   r-   ÚrangeÚminÚlenrY   )r3   ÚsizeÚrrÚ_s       r5   Ú	fetchmanyÚ%AsyncAdapt_aiosqlite_cursor.fetchmanyó   sG   € Ø‰<Ø—>‘>ˆDà�Z‰ZˆÜ&+¬C°´c¸"³gÓ,>Ô&?Ó@Ñ&? —
‘
–Ñ&?Ñ@Ð@ùÒ@s   ¼Ac                ód   • [        U R                  5      nU R                  R                  5         U$ r:   )Úlistr-   r@   )r3   Úretvals     r5   rG   Ú$AsyncAdapt_aiosqlite_cursor.fetchallú   s%   € Ü�d—j‘jÓ!ˆØ�
‰
×ÑÔØˆr8   )	r)   r*   rH   r-   r.   r,   r+   r0   r/   )r4   ÚAsyncAdapt_aiosqlite_connection©ÚreturnÚNoner:   )rK   r   rL   z#Optional[_DBAPISingleExecuteParams]rn   r   )rK   r   rQ   r   rn   r   )rT   r   rn   ro   )rn   zIterator[Any]©rn   zOptional[Any]©rc   zOptional[int]rn   úSequence[Any]©rn   rr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__rF   r6   r=   rA   rE   rP   rU   rZ   r]   rf   rG   Ú__static_attributes__r;   r8   r5   r'   r'   —   s�   † ð	€Ið €Kô)ôôð ;?ð<àð<ð 8ð<ð 
õ	<ð@<àð<ð 4ð<ð 
ô	<ôô'ôöA÷r8   r'   c                  ó`   ^ • \ rS rSrSrSrS
U 4S jjrSS jrSS jrSSS jjr	SS jr
S	rU =r$ )ÚAsyncAdapt_aiosqlite_ss_cursoré   rH   Tc                ó4   >• [         TU ]  " U0 UD6  S U l        g r:   )Úsuperr6   rH   )r3   ÚargÚkwÚ	__class__s      €r5   r6   Ú'AsyncAdapt_aiosqlite_ss_cursor.__init__  s   ø€ Ü‰Ò˜#Ð$ Ò$Ø59ˆ�r8   c                ó€   • U R                   b1  U R                  U R                   R                  5       5        S U l         g g r:   )rH   r,   rA   r<   s    r5   rA   Ú$AsyncAdapt_aiosqlite_ss_cursor.close  s1   € Ø�<‰<Ñ#Ø�K‰K˜Ÿ™×*Ñ*Ó,Ô-ØˆD�Lð $r8   c                ór   • U R                   c   eU R                  U R                   R                  5       5      $ r:   )rH   r,   r]   r<   s    r5   r]   Ú'AsyncAdapt_aiosqlite_ss_cursor.fetchone  ó.   € Ø�|‰|Ñ'Ð'Ð'Ø�{‰{˜4Ÿ<™<×0Ñ0Ó2Ó3Ð3r8   c                óŽ   • U R                   c   eUc  U R                  nU R                  U R                   R                  US95      $ )N)rc   )rH   r.   r,   rf   )r3   rc   s     r5   rf   Ú(AsyncAdapt_aiosqlite_ss_cursor.fetchmany  sA   € Ø�|‰|Ñ'Ð'Ð'Ø‰<Ø—>‘>ˆDØ�{‰{˜4Ÿ<™<×1Ñ1°tÐ1Ð<Ó=Ð=r8   c                ór   • U R                   c   eU R                  U R                   R                  5       5      $ r:   )rH   r,   rG   r<   s    r5   rG   Ú'AsyncAdapt_aiosqlite_ss_cursor.fetchall  r‡   r8   )rH   )r   r   r€   r   rn   ro   rm   rp   r:   rq   rs   )rt   ru   rv   rw   rx   rF   r6   rA   r]   rf   rG   ry   Ú__classcell__©r�   s   @r5   r{   r{      s-   ø† ð €Ià€K÷:ô ô
4ö>÷4ò 4r8   r{   c                  óÌ   • \ rS rSr\" \5      rSrSS jr\	SS j5       r
\
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Srg)rl   i  )Údbapic                ó   • Xl         X l        g r:   )r�   r*   )r3   r�   Ú
connections      r5   r6   Ú(AsyncAdapt_aiosqlite_connection.__init__#  s   € ØŒ
Ø%Õr8   c                óJ   • [        [        U R                  R                  5      $ r:   )r	   Ústrr*   Úisolation_levelr<   s    r5   r•   Ú/AsyncAdapt_aiosqlite_connection.isolation_level'  s   € ä”C˜×)Ñ)×9Ñ9Ó:Ð:r8   c                ó`  •       SS jn[        X R                  R                  U5      n[        R                  " 5       R                  5       nU R                  R                  R                  XC45         U R                  U5        g ! [         a  nU R                  U5         S nAg S nAff = f)Nc                ó   • Xl         g r:   )r•   )r‘   Úvalues     r5   Úset_isoÚ@AsyncAdapt_aiosqlite_connection.isolation_level.<locals>.set_iso2  s
   € ð */Õ&r8   )r‘   rl   r™   úOptional[str]rn   ro   )r   r*   Ú_connÚasyncioÚget_event_loopÚcreate_futureÚ_txÚ
put_nowaitr,   rI   rJ   )r3   r™   rš   ÚfunctionÚfuturerM   s         r5   r•   r–   +  sŸ   € ð	/Ø7ð	/Ø@Mð	/àô	/ô
 ˜7×$4Ñ$4×$:Ñ$:¸EÓBˆÜ×'Ò'Ó)×7Ñ7Ó9ˆà×Ñ×Ñ×'Ñ'¨Ð(:Ô;ð	*Ø�K‰K˜ÕøÜó 	*Ø×"Ñ" 5×)Ñ)ûð	*ús   Á6B Â
B-ÂB(Â(B-c                ó¬   •  U R                  U R                  R                  " U0 UD65        g ! [         a  nU R	                  U5         S nAg S nAff = fr:   )r,   r*   Úcreate_functionrI   rJ   )r3   Úargsr€   rM   s       r5   r¦   Ú/AsyncAdapt_aiosqlite_connection.create_functionA  sJ   € ð	*Ø�K‰K˜×(Ñ(×8Ò8¸$ÐEÀ"ÑEÕFøÜó 	*Ø×"Ñ" 5×)Ñ)ûð	*ús   ‚+. ®
A¸AÁAc                ó<   • U(       a  [        U 5      $ [        U 5      $ r:   )r{   r'   )r3   rF   s     r5   rD   Ú&AsyncAdapt_aiosqlite_connection.cursorG  s   € ÞÜ1°$Ó7Ð7ä.¨tÓ4Ð4r8   c                óX   • U R                  U R                  R                  " U0 UD65      $ r:   )r,   r*   rE   )r3   r§   r€   s      r5   rE   Ú'AsyncAdapt_aiosqlite_connection.executeM  s'   € Ø�{‰{˜4×+Ñ+×3Ò3°TÐ@¸RÑ@ÓAÐAr8   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*   ÚrollbackrI   rJ   ©r3   rM   s     r5   r®   Ú(AsyncAdapt_aiosqlite_connection.rollbackP  sC   € ð	*Ø�K‰K˜×(Ñ(×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*   ÚcommitrI   rJ   r¯   s     r5   r³   Ú&AsyncAdapt_aiosqlite_connection.commitV  sC   € ð	*Ø�K‰K˜×(Ñ(×/Ñ/Ó1Õ2øÜó 	*Ø×"Ñ" 5×)Ñ)ûð	*úr±   c                ó¾   •  U R                  U R                  R                  5       5        g ! [         a     g [         a  nU R                  U5         S nAg S nAff = fr:   )r,   r*   rA   Ú
ValueErrorrI   rJ   r¯   s     r5   rA   Ú%AsyncAdapt_aiosqlite_connection.close\  sP   € ð	*Ø�K‰K˜×(Ñ(×.Ñ.Ó0Õ1øÜó 		ñ Üó 	*Ø×"Ñ" 5×)Ñ)ûð	*ús   ‚), ¬
A¸	AÁAÁAc                ó¢   • [        U[        5      (       a9  UR                  S   S:X  a&  U R                  R                  R                  S5      UeUe)Nr   úno active connection)Ú
isinstancer¶   r§   r�   ÚsqliteÚOperationalErrorr¯   s     r5   rJ   Ú1AsyncAdapt_aiosqlite_connection._handle_exceptionl  sJ   € ä�uœj×)Ñ)Ø—
‘
˜1‘Ð!7Ó7à—*‘*×#Ñ#×4Ñ4Ø&óàðð ˆKr8   c              ƒ  óT   #   • U R                   R                  5       I Sh  v•N   g N7f)z"Try to close connection gracefullyN)r*   rA   r<   s    r5   Ú_terminate_graceful_closeÚ9AsyncAdapt_aiosqlite_connection._terminate_graceful_closew  s   é € à×Ñ×$Ñ$Ó&×&Ó&ùs   ‚( &¡(c                ó|   •  U R                   R                  nU" 5         g! [         a  n[        S5      UeSnAff = f)zTerminate the connectionz:terminate_force_close() not implemented by this DBAPI shimN)r*   ÚstopÚAttributeErrorÚNotImplementedError)r3   ÚmethÚaes      r5   Ú_terminate_force_closeÚ6AsyncAdapt_aiosqlite_connection._terminate_force_close{  sD   € ð
	Ø×#Ñ#×(Ñ(ˆDñ �Føô ó 	Ü%ØLóàðûð	ús   ‚   
;ª6¶;)r*   r�   N)r�   r   r‘   r   rn   ro   )rn   rœ   )r™   rœ   rn   ro   )r§   r   r€   r   rn   ro   )F)rF   Úboolrn   r'   )r§   r   r€   r   rn   r   rm   )rM   rI   rn   r   )rt   ru   rv   rw   Ústaticmethodr   r,   rx   r6   Úpropertyr•   Úsetterr¦   rD   rE   r®   r³   rA   rJ   r¿   rÇ   ry   r;   r8   r5   rl   rl     sr   † Ù˜*Ó%€FØ€Iô&ð ó;ó ð;ð ×Ñó*ó ð*ô**ö5ôBô*ô*ô*ô 	ô'÷r8   rl   c                  ó(   • \ rS rSrSr\" \5      rSrg)Ú'AsyncAdaptFallback_aiosqlite_connectioniŠ  r;   N)	rt   ru   rv   rw   rx   rÊ   r   r,   ry   r;   r8   r5   rÎ   rÎ   Š  s   † Ø€Iá˜.Ó)ƒFr8   rÎ   c                  ó2   • \ rS rSrSS jrSS jrS	S jrSrg)
ÚAsyncAdapt_aiosqlite_dbapii�  c                ó€   • Xl         X l        SU l        [        UR                  S5      U l        U R                  5         g )NÚqmarkrÂ   )Ú	aiosqliter»   Ú
paramstyleÚhasattrÚ
ConnectionÚhas_stopÚ_init_dbapi_attributes)r3   rÓ   r»   s      r5   r6   Ú#AsyncAdapt_aiosqlite_dbapi.__init__‘  s3   € Ø"ŒØŒØ!ˆŒÜ 	× 4Ñ 4°fÓ=ˆŒØ×#Ñ#Õ%r8   c           	     óú   • S H#  n[        X[        U R                  U5      5        M%     S H#  n[        X[        U R                  U5      5        M%     S H#  n[        X[        U R                  U5      5        M%     g )N)ÚDatabaseErrorÚErrorÚIntegrityErrorÚNotSupportedErrorr¼   ÚProgrammingErrorÚsqlite_versionÚsqlite_version_info)ÚPARSE_COLNAMESÚPARSE_DECLTYPES)ÚBinary)ÚsetattrÚgetattrrÓ   r»   )r3   Únames     r5   rØ   Ú1AsyncAdapt_aiosqlite_dbapi._init_dbapi_attributes˜  sg   € ó	
ˆDô �D¤¨¯©¸Ó =Ö>ñ	
ó :ˆDÜ�D¤¨¯©°TÓ :Ö;ñ :ó  ˆDÜ�D¤¨¯©°TÓ :Ö;ò  r8   c                óˆ  • UR                  SS5      nUR                  SS 5      nU(       a	  U" U0 UD6nOJU R                  R                  " U0 UD6n[        U[        5      (       a  SUl        OSUR                  l        [        R                  " U5      (       a  [        U [        U5      5      $ [        U [        U5      5      $ )NÚasync_fallbackFÚasync_creator_fnT)ÚpoprÓ   Úconnectrº   r   ÚdaemonÚ_threadr   ÚasboolrÎ   r   rl   r   )r3   r   r€   rê   Ú
creator_fnr‘   s         r5   rí   Ú"AsyncAdapt_aiosqlite_dbapi.connect«  s·   € ØŸ™Ð 0°%Ó8ˆà—V‘VÐ.°Ó5ˆ
ÞÙ# SÐ/¨BÑ/‰JàŸ™×/Ò/°Ð;¸Ñ;ˆJô ˜*¤f×-Ñ-à$(�
Õ!ð -1�
×"Ñ"Ô)ä�;Š;�~×&Ñ&Ü:ØÜ˜zÓ*óð ô
 3ØÜ˜:Ó&óð r8   )rÓ   r×   rÔ   r»   N)rÓ   r   r»   r   rm   )r   r   r€   r   rn   rl   )rt   ru   rv   rw   r6   rØ   rí   ry   r;   r8   r5   rÐ   rÐ   �  s   † ô&ô<÷&r8   rÐ   c                  ó   • \ rS rSrSS jrSrg)Ú SQLiteExecutionContext_aiosqliteiÈ  c                ó4   • U R                   R                  SS9$ )NT)rF   )Ú_dbapi_connectionrD   r<   s    r5   Úcreate_server_side_cursorÚ:SQLiteExecutionContext_aiosqlite.create_server_side_cursorÉ  s   € Ø×%Ñ%×,Ñ,¸Ð,Ð>Ð>r8   r;   N)rn   r"   )rt   ru   rv   rw   r÷   ry   r;   r8   r5   rô   rô   È  s   † ÷?r8   rô   c                  ó¨   ^ • \ rS rSrSrSrSrSrSr\	r
SU 4S jjr\SS j5       r\SS j5       r        SU 4S jjr    SS jrSS	 jrS
rU =r$ )ÚSQLiteDialect_aiosqliteiÍ  rÓ   Tc                ó�   >• [         TU ]  " S0 UD6  U R                  (       a$  U R                  R                  (       d  SU l        g g g )NFr;   )r~   r6   r�   r×   Úhas_terminate)r3   Úkwargsr�   s     €r5   r6   Ú SQLiteDialect_aiosqlite.__init__Ø  s5   ø€ Ü‰ÒÑ"˜6Ò"Ø�:�:˜dŸj™j×1×1Ø!&ˆDÕð 2ˆ:r8   c                ó>   • [        [        S5      [        S5      5      $ )NrÓ   Úsqlite3)rÐ   Ú
__import__)Úclss    r5   Úimport_dbapiÚ$SQLiteDialect_aiosqlite.import_dbapiÝ  s   € ä)Ü�{Ó#¤Z°	Ó%:ó
ð 	
r8   c                ón   • U R                  U5      (       a  [        R                  $ [        R                  $ r:   )Ú_is_url_file_dbr   ÚAsyncAdaptedQueuePoolÚ
StaticPool)r  Úurls     r5   Úget_pool_classÚ&SQLiteDialect_aiosqlite.get_pool_classã  s)   € à×Ñ˜s×#Ñ#Ü×-Ñ-Ð-ä—?‘?Ð"r8   c                óÂ   >• [        SU R                  5      U l        [        XR                  R                  5      (       a  S[	        U5      ;   a  g[
        TU ]  XU5      $ )Nr#   r¹   T)r	   r�   rº   r¼   r”   r~   Úis_disconnect)r3   Úer‘   rD   r�   s       €r5   r  Ú%SQLiteDialect_aiosqlite.is_disconnectê  sR   ø€ ô ˜-¨¯©Ó4ˆŒ
ÜØ�z‰z×*Ñ*÷
ñ 
à$¬¨A«Ó.Øä‰wÑ$ Q°FÓ;Ð;r8   c                ó   • UR                   $ r:   )r*   )r3   r‘   s     r5   Úget_driver_connectionÚ-SQLiteDialect_aiosqlite.get_driver_connectionø  s   € ð ×%Ñ%Ð%r8   c                ó$   • UR                  5         g r:   )Ú	terminate)r3   Údbapi_connections     r5   Údo_terminateÚ$SQLiteDialect_aiosqlite.do_terminateý  s   € Ø×"Ñ"Õ$r8   )r�   rü   )rý   r   )rn   rÐ   )r	  r$   rn   ztype[pool.Pool])r  zDBAPIModule.Errorr‘   z7Optional[Union[PoolProxiedConnection, DBAPIConnection]]rD   zOptional[DBAPICursor]rn   rÉ   )r‘   r!   rn   r   )r  r!   rn   ro   )rt   ru   rv   rw   ÚdriverÚsupports_statement_cacheÚis_asyncrü   Úsupports_server_side_cursorsrô   Úexecution_ctx_clsr6   Úclassmethodr  r
  r  r  r  ry   rŒ   r�   s   @r5   rú   rú   Í  sœ   ø† Ø€FØ#Ðà€HØ€Mà#'Ð à8Ð÷'ð
 ó
ó ð
ð
 ó#ó ð#ð<àð<ð Lð<ð &ð	<ð
 
÷<ð&Ø)ð&à	ô&÷
%ò %r8   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{   rl   rÎ   rÐ   rô   rú   Údialectr;   r8   r5   Ú<module>r/     sá   ðñdõL #ã Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý å (Ý ,Ý Ý Ý 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 "�r8   