Ë
    ðmxi¡>  ã                  ó>  — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z# ddl"m$Z$ er<ddlm%Z% ddlm&Z& ddl'm(Z( ddl'm)Z) dd l'm*Z* dd!l'm+Z+ dd"l'm,Z, dd#l'm-Z- dd$l.m/Z/ dd%l0m1Z1  G d&„ d'«      Z2 G d(„ d)e2«      Z3 G d*„ d+ee!«      Z4 G d,„ d-e4«      Z5 G d.„ d/e«      Z6 G d0„ d1e«      Z7 G d2„ d3e«      Z8e8Z9y)4aö	  

.. 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                  ó€   — e Zd ZdZdZdd„Zdd„Zdd„Z	 d	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	dd	„Z
dd
„Zdd„Zddd„Zdd„Zy)ÚAsyncAdapt_aiosqlite_cursor)Ú_adapt_connectionÚ_connectionÚdescriptionÚawait_Ú_rowsÚ	arraysizeÚrowcountÚ	lastrowidFc                óž   — || _         |j                  | _        |j                  | _        d| _        d| _        d | _        t        «       | _        y )Nr   éÿÿÿÿ)r(   r)   r+   r-   r.   r*   r   r,   )ÚselfÚadapt_connections     ú[/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.pyÚ__init__z$AsyncAdapt_aiosqlite_cursor.__init__‰   sD   € Ø!1ˆÔØ+×7Ñ7ˆÔØ&×-Ñ-ˆŒØˆŒØˆŒØ>BˆÔÜ!&£ˆ�
ó    c              ƒ  ó   K  — y ­w©N© ©r2   s    r4   Ú_async_soft_closez-AsyncAdapt_aiosqlite_cursor._async_soft_close’   s	   è ø€ Øùs   ‚c                ó8   — | j                   j                  «        y r8   )r,   Úclearr:   s    r4   Úclosez!AsyncAdapt_aiosqlite_cursor.close•   s   € Ø�
‰
×ÑÕr6   Nc                óÄ  — 	 | j                  | j                  j                  «       «      }|€!| j                  |j                  |«      «       n!| j                  |j                  ||«      «       |j                  rY|j                  | _        dx| _        | _        | j                  sWt        | j                  |j                  «       «      «      | _
        n)d | _        |j
                  | _        |j                  | _        | j                  s | j                  |j                  «       «       y || _        y # t        $ r%}| j                  j                  |«       Y d }~y d }~ww xY w)Nr1   )r+   r)   ÚcursorÚexecuter*   r/   r.   Úserver_sider   Úfetchallr,   r>   Ú_cursorÚ	Exceptionr(   Ú_handle_exception)r2   Ú	operationÚ
parametersrD   Úerrors        r4   rA   z#AsyncAdapt_aiosqlite_cursor.execute˜   s  € ð	<Ø*.¯+©+°d×6FÑ6F×6MÑ6MÓ6OÓ*PˆGàÐ!Ø—‘˜GŸO™O¨IÓ6Õ7à—‘˜GŸO™O¨I°zÓ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   ‚D&D1 Ä)D1 Ä1	EÄ:EÅEc                óŒ  — 	 | j                  | j                  j                  «       «      }| j                  |j                  ||«      «       d | _        |j
                  | _        |j                  | _        | j                  |j                  «       «       y # t        $ r%}| j                  j                  |«       Y d }~y d }~ww xY wr8   )r+   r)   r@   Úexecutemanyr*   r/   r.   r>   rE   r(   rF   )r2   rG   Úseq_of_parametersrD   rI   s        r4   rK   z'AsyncAdapt_aiosqlite_cursor.executemany¸   s™   € ð
	<Ø*.¯+©+°d×6FÑ6F×6MÑ6MÓ6OÓ*PˆGØ�K‰K˜×+Ñ+¨IÐ7HÓIÔJØ#ˆDÔØ$×.Ñ.ˆDŒNØ#×,Ñ,ˆDŒMØ�K‰K˜Ÿ™›Õ(øÜò 	<Ø×"Ñ"×4Ñ4°U×;Ñ;ûð	<ús   ‚BB Â	CÂB>Â>Cc                 ó   — y r8   r9   )r2   Ú
inputsizess     r4   Úsetinputsizesz)AsyncAdapt_aiosqlite_cursor.setinputsizesÇ   s   € Ør6   c              #  óx   K  — | j                   r*| j                   j                  «       –— | j                   rŒ)y y ­wr8   ©r,   Úpopleftr:   s    r4   Ú__iter__z$AsyncAdapt_aiosqlite_cursor.__iter__Ê   s)   è ø€ Ø�jŠjØ—*‘*×$Ñ$Ó&Ò&ð �j�jùs   ‚5:¸:c                óP   — | j                   r| j                   j                  «       S y r8   rQ   r:   s    r4   Úfetchonez$AsyncAdapt_aiosqlite_cursor.fetchoneÎ   s   € Ø�:Š:Ø—:‘:×%Ñ%Ó'Ð'àr6   c                ó´   — |€| j                   }| j                  }t        t        |t	        |«      «      «      D �cg c]  }|j                  «       ‘Œ c}S c c}w r8   )r-   r,   ÚrangeÚminÚlenrR   )r2   ÚsizeÚrrÚ_s       r4   Ú	fetchmanyz%AsyncAdapt_aiosqlite_cursor.fetchmanyÔ   sC   € Øˆ<Ø—>‘>ˆDà�Z‰ZˆÜ&+¬C°´c¸"³gÓ,>Ó&?Ö@ �—
‘
•Ò@Ð@ùÒ@s   »Ac                ód   — t        | j                  «      }| j                  j                  «        |S r8   )Úlistr,   r=   )r2   Úretvals     r4   rC   z$AsyncAdapt_aiosqlite_cursor.fetchallÛ   s%   € Ü�d—j‘jÓ!ˆØ�
‰
×ÑÔØˆr6   )r3   ÚAsyncAdapt_aiosqlite_connection©ÚreturnÚNoner8   )rG   r   rH   z#Optional[_DBAPISingleExecuteParams]rc   r   )rG   r   rL   r   rc   r   )rN   r   rc   rd   )rc   zIterator[Any]©rc   zOptional[Any]©rZ   zOptional[int]rc   úSequence[Any]©rc   rg   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__rB   r5   r;   r>   rA   rK   rO   rS   rU   r]   rC   r9   r6   r4   r'   r'   x   s�   „ ð	€Ið €Kó)óóð ;?ð<àð<ð 8ð<ð 
ó	<ð@<àð<ð 4ð<ð 
ó	<óó'óôAôr6   r'   c                  óJ   ‡ — e Zd ZdZdZdˆ fd„Zd	d„Zd
d„Zddd„Zdd„Z	ˆ xZ
S )ÚAsyncAdapt_aiosqlite_ss_cursorrD   Tc                ó2   •— t        ‰| �  |i |¤Ž d | _        y r8   )Úsuperr5   rD   )r2   ÚargÚkwÚ	__class__s      €r4   r5   z'AsyncAdapt_aiosqlite_ss_cursor.__init__è   s   ø€ Ü‰Ñ˜#Ð$ Ò$Ø59ˆ�r6   c                ó~   — | j                   �1| j                  | j                   j                  «       «       d | _         y y r8   )rD   r+   r>   r:   s    r4   r>   z$AsyncAdapt_aiosqlite_ss_cursor.closeì   s1   € Ø�<‰<Ð#Ø�K‰K˜Ÿ™×*Ñ*Ó,Ô-ØˆD�Lð $r6   c                óp   — | j                   €J ‚| j                  | j                   j                  «       «      S r8   )rD   r+   rU   r:   s    r4   rU   z'AsyncAdapt_aiosqlite_ss_cursor.fetchoneñ   ó.   € Ø�|‰|Ð'Ð'Ð'Ø�{‰{˜4Ÿ<™<×0Ñ0Ó2Ó3Ð3r6   c                ó�   — | j                   €J ‚|€| j                  }| j                  | j                   j                  |¬«      «      S )N)rZ   )rD   r-   r+   r]   )r2   rZ   s     r4   r]   z(AsyncAdapt_aiosqlite_ss_cursor.fetchmanyõ   sA   € Ø�|‰|Ð'Ð'Ð'Øˆ<Ø—>‘>ˆDØ�{‰{˜4Ÿ<™<×1Ñ1°tÐ1Ó<Ó=Ð=r6   c                óp   — | j                   €J ‚| j                  | j                   j                  «       «      S r8   )rD   r+   rC   r:   s    r4   rC   z'AsyncAdapt_aiosqlite_ss_cursor.fetchallû   rv   r6   )rq   r   rr   r   rc   rd   rb   re   r8   rf   rh   )ri   rj   rk   rl   rB   r5   r>   rU   r]   rC   Ú__classcell__©rs   s   @r4   rn   rn   á   s(   ø„ ð €Ià€Kõ:ó ó
4ô>÷4r6   rn   c                  óª   — e Zd Z ee«      ZdZdd„Zedd„«       Z	e	j                  dd„«       Z	dd„Zddd„Zdd„Zdd„Zdd	„Zdd
„Zdd„Zdd„Zdd„Zy)ra   )Údbapic                ó    — || _         || _        y r8   )r|   r)   )r2   r|   Ú
connections      r4   r5   z(AsyncAdapt_aiosqlite_connection.__init__  s   € ØˆŒ
Ø%ˆÕr6   c                óJ   — t        t        | j                  j                  «      S r8   )r	   Ústrr)   Úisolation_levelr:   s    r4   r�   z/AsyncAdapt_aiosqlite_connection.isolation_level  s   € ä”C˜×)Ñ)×9Ñ9Ó:Ð:r6   c                ó^  — 	 	 	 	 	 	 dd„}t        || j                  j                  |«      }t        j                  «       j                  «       }| j                  j                  j                  ||f«       	 | j                  |«       y # t        $ r}| j                  |«       Y d }~y d }~ww xY w)Nc                ó   — || _         y r8   )r�   )r~   Úvalues     r4   Úset_isoz@AsyncAdapt_aiosqlite_connection.isolation_level.<locals>.set_iso  s   € ð */ˆJÕ&r6   )r~   ra   r„   úOptional[str]rc   rd   )r   r)   Ú_connÚasyncioÚget_event_loopÚcreate_futureÚ_txÚ
put_nowaitr+   rE   rF   )r2   r„   r…   ÚfunctionÚfuturerI   s         r4   r�   z/AsyncAdapt_aiosqlite_connection.isolation_level  s£   € ð	/Ø7ð	/Ø@Mð	/àó	/ô
 ˜7 D×$4Ñ$4×$:Ñ$:¸EÓBˆÜ×'Ñ'Ó)×7Ñ7Ó9ˆà×Ñ×Ñ×'Ñ'¨°Ð(:Ô;ð	*Ø�K‰K˜ÕøÜò 	*Ø×"Ñ" 5×)Ñ)ûð	*ús   Á6B Â	B,ÂB'Â'B,c                óª   — 	 | j                   | j                  j                  |i |¤Ž«       y # t        $ r}| j	                  |«       Y d }~y d }~ww xY wr8   )r+   r)   Úcreate_functionrE   rF   )r2   Úargsrr   rI   s       r4   r�   z/AsyncAdapt_aiosqlite_connection.create_function"  sM   € ð	*Ø�K‰KÐ8˜×(Ñ(×8Ñ8¸$ÐEÀ"ÑEÕFøÜò 	*Ø×"Ñ" 5×)Ñ)ûð	*ús   ‚+. ®	A·AÁAc                ó2   — |rt        | «      S t        | «      S r8   )rn   r'   )r2   rB   s     r4   r@   z&AsyncAdapt_aiosqlite_connection.cursor(  s   € ÙÜ1°$Ó7Ð7ä.¨tÓ4Ð4r6   c                óX   — | j                   | j                  j                  |i |¤Ž«      S r8   )r+   r)   rA   )r2   r‘   rr   s      r4   rA   z'AsyncAdapt_aiosqlite_connection.execute.  s*   € Ø�{‰{Ð3˜4×+Ñ+×3Ñ3°TÐ@¸RÑ@ÓAÐAr6   c                ó¦   — 	 | j                  | j                  j                  «       «       y # t        $ r}| j	                  |«       Y d }~y d }~ww xY wr8   )r+   r)   ÚrollbackrE   rF   ©r2   rI   s     r4   r•   z(AsyncAdapt_aiosqlite_connection.rollback1  sC   € ð	*Ø�K‰K˜×(Ñ(×1Ñ1Ó3Õ4øÜò 	*Ø×"Ñ" 5×)Ñ)ûð	*úó   ‚), ¬	AµAÁAc                ó¦   — 	 | j                  | j                  j                  «       «       y # t        $ r}| j	                  |«       Y d }~y d }~ww xY wr8   )r+   r)   ÚcommitrE   rF   r–   s     r4   r™   z&AsyncAdapt_aiosqlite_connection.commit7  sC   € ð	*Ø�K‰K˜×(Ñ(×/Ñ/Ó1Õ2øÜò 	*Ø×"Ñ" 5×)Ñ)ûð	*úr—   c                óº   — 	 | j                  | j                  j                  «       «       y # t        $ r Y y t        $ r}| j                  |«       Y d }~y d }~ww xY wr8   )r+   r)   r>   Ú
ValueErrorrE   rF   r–   s     r4   r>   z%AsyncAdapt_aiosqlite_connection.close=  sP   € ð	*Ø�K‰K˜×(Ñ(×.Ñ.Ó0Õ1øÜò 		ñ Üò 	*Ø×"Ñ" 5×)Ñ)ûð	*ús   ‚), ¬	A·A¿AÁAc                ó–   — t        |t        «      r8|j                  d   dk(  r&| j                  j                  j                  d«      |‚|‚)Nr   úno active connection)Ú
isinstancer›   r‘   r|   ÚsqliteÚOperationalErrorr–   s     r4   rF   z1AsyncAdapt_aiosqlite_connection._handle_exceptionM  sG   € ä�uœjÔ)Ø—
‘
˜1‘Ð!7Ò7à—*‘*×#Ñ#×4Ñ4Ø&óàðð ˆKr6   c              ƒ  óT   K  — | j                   j                  «       ƒ d{  –—†  y7 Œ­w)z"Try to close connection gracefullyN)r)   r>   r:   s    r4   Ú_terminate_graceful_closez9AsyncAdapt_aiosqlite_connection._terminate_graceful_closeX  s   è ø€ à×Ñ×$Ñ$Ó&×&Ò&ús   ‚( &¡(c                óz   — 	 | j                   j                  } |«        y# t        $ r}t        d«      |‚d}~ww xY w)zTerminate the connectionz:terminate_force_close() not implemented by this DBAPI shimN)r)   ÚstopÚAttributeErrorÚNotImplementedError)r2   ÚmethÚaes      r4   Ú_terminate_force_closez6AsyncAdapt_aiosqlite_connection._terminate_force_close\  sD   € ð
	Ø×#Ñ#×(Ñ(ˆDñ �Føô ò 	Ü%ØLóàðûð	ús   ‚   	:©5µ:N)r|   r   r~   r   rc   rd   )rc   r†   )r„   r†   rc   rd   )r‘   r   rr   r   rc   rd   )F)rB   Úboolrc   r'   )r‘   r   rr   r   rc   r   rb   )rI   rE   rc   r   )ri   rj   rk   Ústaticmethodr   r+   rl   r5   Úpropertyr�   Úsetterr�   r@   rA   r•   r™   r>   rF   r¢   r©   r9   r6   r4   ra   ra      sr   „ Ù˜*Ó%€FØ€Ió&ð ò;ó ð;ð ×Ñò*ó ð*ó**ô5óBó*ó*ó*ó 	ó'ôr6   ra   c                  ó    — e Zd ZdZ ee«      Zy)Ú'AsyncAdaptFallback_aiosqlite_connectionr9   N)ri   rj   rk   rl   r«   r   r+   r9   r6   r4   r¯   r¯   k  s   „ Ø€Iá˜.Ó)�Fr6   r¯   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚAsyncAdapt_aiosqlite_dbapic                ó„   — || _         || _        d| _        t        |j                  d«      | _        | j                  «        y )NÚqmarkr¤   )Ú	aiosqliterŸ   Ú
paramstyleÚhasattrÚ
ConnectionÚhas_stopÚ_init_dbapi_attributes)r2   r´   rŸ   s      r4   r5   z#AsyncAdapt_aiosqlite_dbapi.__init__r  s7   € Ø"ˆŒØˆŒØ!ˆŒÜ 	× 4Ñ 4°fÓ=ˆŒØ×#Ñ#Õ%r6   c           	     óô   — dD ]#  }t        | |t        | j                  |«      «       Œ% dD ]#  }t        | |t        | j                  |«      «       Œ% dD ]#  }t        | |t        | j                  |«      «       Œ% y )N)ÚDatabaseErrorÚErrorÚIntegrityErrorÚNotSupportedErrorr    ÚProgrammingErrorÚsqlite_versionÚsqlite_version_info)ÚPARSE_COLNAMESÚPARSE_DECLTYPES)ÚBinary)ÚsetattrÚgetattrr´   rŸ   )r2   Únames     r4   r¹   z1AsyncAdapt_aiosqlite_dbapi._init_dbapi_attributesy  s|   € ð	
ò 
	?ˆDô �D˜$¤¨¯©¸Ó =Õ>ð
	?ð :ò 	<ˆDÜ�D˜$¤¨¯©°TÓ :Õ;ð	<ð  ò 	<ˆDÜ�D˜$¤¨¯©°TÓ :Õ;ñ	<r6   c                óh  — |j                  dd«      }|j                  dd «      }|r	 ||i |¤Ž}nE | j                  j                  |i |¤Ž}t        |t        «      rd|_        nd|j                  _        t        j                  |«      rt        | t        |«      «      S t        | t        |«      «      S )NÚasync_fallbackFÚasync_creator_fnT)Úpopr´   Úconnectrž   r   ÚdaemonÚ_threadr   Úasboolr¯   r   ra   r   )r2   rq   rr   rÉ   Ú
creator_fnr~   s         r4   rÌ   z"AsyncAdapt_aiosqlite_dbapi.connectŒ  s³   € ØŸ™Ð 0°%Ó8ˆà—V‘VÐ.°Ó5ˆ
ÙÙ# SÐ/¨BÑ/‰Jà/˜Ÿ™×/Ñ/°Ð;¸Ñ;ˆJô ˜*¤fÔ-à$(�
Õ!ð -1�
×"Ñ"Ô)ä�;‰;�~Ô&Ü:ØÜ˜zÓ*óð ô
 3ØÜ˜:Ó&óð r6   N)r´   r   rŸ   r   rb   )rq   r   rr   r   rc   ra   )ri   rj   rk   r5   r¹   rÌ   r9   r6   r4   r±   r±   q  s   „ ó&ó<ô&r6   r±   c                  ó   — e Zd Zdd„Zy)Ú SQLiteExecutionContext_aiosqlitec                ó:   — | j                   j                  d¬«      S )NT)rB   )Ú_dbapi_connectionr@   r:   s    r4   Úcreate_server_side_cursorz:SQLiteExecutionContext_aiosqlite.create_server_side_cursorª  s   € Ø×%Ñ%×,Ñ,¸Ð,Ó>Ð>r6   N)rc   r"   )ri   rj   rk   rÕ   r9   r6   r4   rÒ   rÒ   ©  s   „ ô?r6   rÒ   c                  ó�   ‡ — e Zd ZdZdZdZdZdZeZ	d	ˆ fd„Z
ed
d„«       Zedd„«       Z	 	 	 	 	 	 	 	 dˆ fd„Z	 	 	 	 dd„Zdd„Zˆ xZS )ÚSQLiteDialect_aiosqliter´   Tc                óz   •— t        ‰| �  di |¤Ž | j                  r| j                  j                  sd| _        y y y )NFr9   )rp   r5   r|   r¸   Úhas_terminate)r2   Úkwargsrs   s     €r4   r5   z SQLiteDialect_aiosqlite.__init__¹  s5   ø€ Ü‰ÑÑ"˜6Ò"Ø�:Š:˜dŸj™j×1Ò1Ø!&ˆDÕð 2ˆ:r6   c                ó>   — t        t        d«      t        d«      «      S )Nr´   Úsqlite3)r±   Ú
__import__)Úclss    r4   Úimport_dbapiz$SQLiteDialect_aiosqlite.import_dbapi¾  s   € ä)Ü�{Ó#¤Z°	Ó%:ó
ð 	
r6   c                ód   — | j                  |«      rt        j                  S t        j                  S r8   )Ú_is_url_file_dbr   ÚAsyncAdaptedQueuePoolÚ
StaticPool)rÞ   Úurls     r4   Úget_pool_classz&SQLiteDialect_aiosqlite.get_pool_classÄ  s&   € à×Ñ˜sÔ#Ü×-Ñ-Ð-ä—?‘?Ð"r6   c                ó¸   •— t        d| j                  «      | _        t        || j                  j                  «      rdt	        |«      v ryt
        ‰| �  |||«      S )Nr#   r�   T)r	   r|   rž   r    r€   rp   Úis_disconnect)r2   Úer~   r@   rs   s       €r4   rç   z%SQLiteDialect_aiosqlite.is_disconnectË  sQ   ø€ ô ˜-¨¯©Ó4ˆŒ
ÜØˆt�z‰z×*Ñ*ô
à$¬¨A«Ñ.Øä‰wÑ$ Q¨
°FÓ;Ð;r6   c                ó   — |j                   S r8   )r)   )r2   r~   s     r4   Úget_driver_connectionz-SQLiteDialect_aiosqlite.get_driver_connectionÙ  s   € ð ×%Ñ%Ð%r6   c                ó$   — |j                  «        y r8   )Ú	terminate)r2   Údbapi_connections     r4   Údo_terminatez$SQLiteDialect_aiosqlite.do_terminateÞ  s   € Ø×"Ñ"Õ$r6   )rÚ   r   )rc   r±   )rä   r$   rc   ztype[pool.Pool])rè   zDBAPIModule.Errorr~   z7Optional[Union[PoolProxiedConnection, DBAPIConnection]]r@   zOptional[DBAPICursor]rc   rª   )r~   r!   rc   r   )rí   r!   rc   rd   )ri   rj   rk   ÚdriverÚsupports_statement_cacheÚis_asyncrÙ   Úsupports_server_side_cursorsrÒ   Úexecution_ctx_clsr5   Úclassmethodrß   rå   rç   rê   rî   ry   rz   s   @r4   r×   r×   ®  s—   ø„ Ø€FØ#Ðà€HØ€Mà#'Ð à8Ðõ'ð
 ò
ó ð
ð
 ò#ó ð#ð<àð<ð Lð<ð &ð	<ð
 
õ<ð&Ø)ð&à	ó&÷
%r6   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'   rn   ra   r¯   r±   rÒ   r×   Údialectr9   r6   r4   ú<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 "�r6   