Ë
    ij3  ã                  óÖ  — d Z ddlmZ ddlZddl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 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   G d„ de«      Z! G d„ de«      Z" G d„ d«      Z# G d „ d!«      Z$ G d"„ d#e$«      Z% G d$„ d%e«      Z& G d&„ d'e&«      Z' G d(„ d)«      Z(y)*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                  ó8   — e Zd ZdZdd„Zd	d„Zdd„Zd
d„Zdd„Zy)ÚAsyncIODBAPIConnectionz^protocol representing an async adapted version of a
    :pep:`249` database connection.


    c              ƒ  ó   K  — y ­w©N© ©Úselfs    úf/var/www/html/sergio/sergio-backend/venv/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.pyÚcommitzAsyncIODBAPIConnection.commit3   s   è ø€  Cùó   ‚c                 ó   — y r   r   )r    ÚargsÚkwargss      r!   ÚcursorzAsyncIODBAPIConnection.cursor5   s   € Àsó    c              ƒ  ó   K  — y ­wr   r   r   s    r!   ÚrollbackzAsyncIODBAPIConnection.rollback7   s   è ø€  cùr#   c                 ó   — y r   r   ©r    Úkeys     r!   Ú__getattr__z"AsyncIODBAPIConnection.__getattr__9   s   € ¨Cr(   c                 ó   — y r   r   )r    r-   Úvalues      r!   Ú__setattr__z"AsyncIODBAPIConnection.__setattr__;   s   € ¸r(   N©ÚreturnÚNone)r%   r   r&   r   r3   ÚAsyncIODBAPICursor©r-   Ústrr3   r   )r-   r7   r0   r   r3   r4   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r'   r*   r.   r1   r   r(   r!   r   r   )   s   „ ñó (ãJã)ã/ä<r(   r   c                  óØ   — e Zd ZU dZdd„Ze	 	 dd„«       Zedd„«       Zded<   ded<   dd„Z		 d	 	 	 	 	 dd
„Z
	 	 	 	 	 	 dd„Zdd„Zddd„Zdd„Zdd„Zd d„Z	 d	 	 	 	 	 d!d„Zd"d„Zd#d„Zy	)$r5   zZprotocol representing an async adapted version
    of a :pep:`249` database cursor.


    c                 ó   — y r   r   r   s    r!   Ú
__aenter__zAsyncIODBAPICursor.__aenter__E   s   €  r(   c                 ó   — y)z(The description attribute of the Cursor.Nr   r   s    r!   ÚdescriptionzAsyncIODBAPICursor.descriptionG   s   € ð
 	r(   Úintc                 ó   — y r   r   r   s    r!   ÚrowcountzAsyncIODBAPICursor.rowcountN   s   € Ø"r(   Ú	arraysizeÚ	lastrowidc              ƒ  ó   K  — y ­wr   r   r   s    r!   ÚclosezAsyncIODBAPICursor.closeU   s   è ø€  3ùr#   Nc              ƒ  ó   K  — y ­wr   r   ©r    Ú	operationÚ
parameterss      r!   ÚexecutezAsyncIODBAPICursor.executeW   ó   è ø€ ð ùr#   c              ƒ  ó   K  — y ­wr   r   rI   s      r!   ÚexecutemanyzAsyncIODBAPICursor.executemany]   rM   r#   c              ƒ  ó   K  — y ­wr   r   r   s    r!   ÚfetchonezAsyncIODBAPICursor.fetchonec   ó   è ø€ ¨sùr#   c              ƒ  ó   K  — y ­wr   r   ©r    Úsizes     r!   Ú	fetchmanyzAsyncIODBAPICursor.fetchmanye   s   è ø€ È3ùr#   c              ƒ  ó   K  — y ­wr   r   r   s    r!   ÚfetchallzAsyncIODBAPICursor.fetchallg   rR   r#   c              ƒ  ó   K  — y ­wr   r   )r    Úsizess     r!   Úsetinputsizesz AsyncIODBAPICursor.setinputsizesi   s   è ø€ Àùr#   c                 ó   — y r   r   )r    rU   Úcolumns      r!   Úsetoutputsizez AsyncIODBAPICursor.setoutputsizek   s   € ¸Sr(   c              ƒ  ó   K  — y ­wr   r   )r    ÚprocnamerK   s      r!   ÚcallproczAsyncIODBAPICursor.callprocm   s	   è ø€ àùr#   c              ƒ  ó   K  — y ­wr   r   r   s    r!   ÚnextsetzAsyncIODBAPICursor.nextsetq   rR   r#   c                 ó   — y r   r   r   s    r!   Ú	__aiter__zAsyncIODBAPICursor.__aiter__s   s   € ¨sr(   )r3   r   )r3   r   ©r3   rA   r2   r   ©rJ   r   rK   z#Optional[_DBAPISingleExecuteParams]r3   r   )rJ   r   rK   r   r3   r   ©r3   zOptional[Any]).©rU   úOptional[int]r3   úSequence[Any]©r3   rk   )rZ   rk   r3   r4   )rU   r   r]   r   r3   r4   )r`   r7   rK   rk   r3   r   )r3   zOptional[bool])r3   zAsyncIterator[Any])r8   r9   r:   r;   r>   Úpropertyr@   rC   Ú__annotations__rG   rL   rO   rQ   rV   rX   r[   r^   ra   rc   re   r   r(   r!   r5   r5   >   sÅ   … ñó %àðà	 òó ðð Ú"ó Ø"àƒNàƒNã&ð
 ;?ðàðð 8ðð 
ó	ðàðð -ðð 
ó	ó 3äNã2ãDã@ð :=ðØðØ)6ðà	óó 3ä2r(   r5   c                  óz   — e Zd Zer5ej
                  Zej                  Zej                  Zej                  Zdd„Z	yy)ÚAsyncAdapt_dbapi_modulec                 ó   — y r   r   r,   s     r!   r.   z#AsyncAdapt_dbapi_module.__getattr__}   s   € °r(   Nr6   )
r8   r9   r:   r   r   ÚErrorÚOperationalErrorÚInterfaceErrorÚIntegrityErrorr.   r   r(   r!   rp   rp   v   s:   „ ÙØ×!Ñ!ˆØ&×7Ñ7ÐØ$×3Ñ3ˆØ$×3Ñ3ˆä3ð r(   rp   c                  ó~  — e Zd ZU dZdZdZded<   ded<   ded	<   d
ed<   ded<   d%d„Zd&d„Z	 	 	 	 d'd„Z	e
d(d„«       Ze
d)d„«       Ze
d)d„«       Zej                  d*d„«       Ze
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„Zd0d„Zd1d „Zd2d!„Zd3d"„Zd,d4d#„Zd5d$„Zy)6ÚAsyncAdapt_dbapi_cursorF)Ú_adapt_connectionÚ_connectionÚawait_Ú_cursorÚ_rowsÚ_soft_closed_memoizedTÚboolÚ_awaitable_cursor_closer5   r{   ÚAsyncAdapt_dbapi_connectionrx   r   ry   z
Deque[Any]r|   c                ó  — || _         |j                  | _        |j                  | _        | j                  | j                  «      }| j	                  |«      | _        t        | _        | j                  st        j                  «       | _        y y r   )rx   ry   rz   Ú_make_new_cursorÚ_aenter_cursorr{   r   r}   Úserver_sideÚcollectionsÚdequer|   )r    Úadapt_connectionr'   s      r!   Ú__init__z AsyncAdapt_dbapi_cursor.__init__’   ss   € Ø!1ˆÔØ+×7Ñ7ˆÔà&×-Ñ-ˆŒà×&Ñ& t×'7Ñ'7Ó8ˆØ×*Ñ*¨6Ó2ˆŒÜ%/ˆÔ"Ø×ÒÜ$×*Ñ*Ó,ˆD�Jð  r(   c                ó@   — | j                  |j                  «       «      S r   )rz   r>   )r    r'   s     r!   rƒ   z&AsyncAdapt_dbapi_cursor._aenter_cursorž   s   € Ø�{‰{˜6×,Ñ,Ó.Ó/Ð/r(   c                ó"   — |j                  «       S r   )r'   )r    Ú
connections     r!   r‚   z(AsyncAdapt_dbapi_cursor._make_new_cursor¡   s   € ð × Ñ Ó"Ð"r(   c                óh   — d| j                   v r| j                   d   S | j                  j                  S )Nr@   )r}   r{   r@   r   s    r!   r@   z#AsyncAdapt_dbapi_cursor.description¦   s1   € à˜D×6Ñ6Ñ6Ø×-Ñ-¨mÑ<Ð<Ø�|‰|×'Ñ'Ð'r(   c                ó.   — | j                   j                  S r   )r{   rC   r   s    r!   rC   z AsyncAdapt_dbapi_cursor.rowcount¬   s   € à�|‰|×$Ñ$Ð$r(   c                ó.   — | j                   j                  S r   ©r{   rD   r   s    r!   rD   z!AsyncAdapt_dbapi_cursor.arraysize°   ó   € à�|‰|×%Ñ%Ð%r(   c                ó&   — || j                   _        y r   r�   )r    r0   s     r!   rD   z!AsyncAdapt_dbapi_cursor.arraysize´   s   € à!&ˆ�‰Õr(   c                ó.   — | j                   j                  S r   )r{   rE   r   s    r!   rE   z!AsyncAdapt_dbapi_cursor.lastrowid¸   r�   r(   c              ƒ  óò   K  — | j                   r| j                  ry| j                  j                  d| j                  j
                  i«      | _        | j                  j                  «       ƒ d{  –—†  y7 Œ­w)zclose the cursor but keep the results pending, and memoize the
        description.

        .. versionadded:: 2.0.44

        Nr@   )r   r„   r}   Úunionr{   r@   rG   r   s    r!   Ú_async_soft_closez)AsyncAdapt_dbapi_cursor._async_soft_close¼   sa   è ø€ ð ×+Ò+¨t×/?Ò/?Øà%)×%?Ñ%?×%EÑ%Eà˜tŸ|™|×7Ñ7ðó&
ˆÔ"ð
 �l‰l× Ñ Ó"×"Ò"ús   ‚A-A7Á/A5Á0A7c                ó2  — | j                   j                  «        | j                  �t        | j                  «      ry | j
                  s| j                  j                  «        y t        «       r*| j                  | j                  j                  «       «       y y r   )	r|   Úclearr{   r~   r}   r   rG   r   rz   r   s    r!   rG   zAsyncAdapt_dbapi_cursor.closeÎ   sj   € Ø�
‰
×ÑÔð �<‰<Ð¤4¨×(BÑ(BÔ#CØà×+Ò+Ø�L‰L×ÑÕ ÜŒ]Ø�K‰K˜Ÿ™×*Ñ*Ó,Õ-ð r(   Nc                ó¨   — 	 | j                  | j                  ||«      «      S # t        $ r%}| j                  j	                  |«       Y d }~y d }~ww xY wr   )rz   Ú_execute_asyncÚ	Exceptionrx   Ú_handle_exception)r    rJ   rK   Úerrors       r!   rL   zAsyncAdapt_dbapi_cursor.executeÞ   sJ   € ð
	<Ø—;‘;˜t×2Ñ2°9¸jÓIÓJÐJøÜò 	<Ø×"Ñ"×4Ñ4°U×;Ñ;ûð	<úó   ‚ # £	A¬AÁAc                ó¨   — 	 | j                  | j                  ||«      «      S # t        $ r%}| j                  j	                  |«       Y d }~y d }~ww xY wr   )rz   Ú_executemany_asyncrš   rx   r›   )r    rJ   Úseq_of_parametersrœ   s       r!   rO   z#AsyncAdapt_dbapi_cursor.executemanyè   sR   € ð
	<Ø—;‘;Ø×'Ñ'¨	Ð3DÓEóð øô ò 	<Ø×"Ñ"×4Ñ4°U×;Ñ;ûð	<úr�   c              ƒ  óø  K  — | j                   j                  4 ƒd {  –—†  |€$| j                  j                  |«      ƒ d {  –—† }n$| j                  j                  ||«      ƒ d {  –—† }| j                  j                  rF| j
                  s:t        j                  | j                  j                  «       ƒ d {  –—† «      | _	        |cd d d «      ƒd {  –—†  S 7 Œ½7 Œš7 Œw7 Œ&7 Œ# 1 ƒd {  –—†7  sw Y   y xY w­wr   )
rx   Ú_execute_mutexr{   rL   r@   r„   r…   r†   rX   r|   )r    rJ   rK   Úresults       r!   r™   z&AsyncAdapt_dbapi_cursor._execute_asyncô   s´   è ø€ ð ×)Ñ)×8×8Ó8ØÐ!Ø#Ÿ|™|×3Ñ3°IÓ>×>‘à#Ÿ|™|×3Ñ3°I¸zÓJ×J�à�|‰|×'Ò'°×0@Ò0@Ü(×.Ñ.°T·\±\×5JÑ5JÓ5L×/LÓM�”
Ø÷ 9×8Ò8øà>øàJøð 0Møð 9ø×8×8Ñ8üs{   ‚C:�CžC:¡!C%ÁCÁ$C%Á'CÁ(AC%Â:C!
Â;C%Ã	C:ÃC#ÃC:ÃC%ÃC%Ã!C%Ã#C:Ã%C7Ã+C.Ã,C7Ã3C:c              ƒ  óè   K  — | j                   j                  4 ƒd {  –—†  | j                  j                  ||«      ƒ d {  –—† cd d d «      ƒd {  –—†  S 7 Œ97 Œ7 Œ	# 1 ƒd {  –—†7  sw Y   y xY w­wr   )rx   r¢   r{   rO   )r    rJ   r    s      r!   rŸ   z*AsyncAdapt_dbapi_cursor._executemany_async  sQ   è ø€ ð
 ×)Ñ)×8×8Ó8ØŸ™×1Ñ1°)Ð=NÓO×O÷ 9×8Ò8øØOøð 9ø×8×8Ñ8üsV   ‚A2�AžA2¡ AÁAÁAÁA2ÁAÁA2ÁAÁA2ÁA/Á#A&Á$A/Á+A2c                ó   — | j                  | j                  j                  «       «       | j                  j                  rO| j                  sBt        j                  | j                  | j                  j                  «       «      «      | _        y y y r   )	rz   r{   rc   r@   r„   r…   r†   rX   r|   r   s    r!   rc   zAsyncAdapt_dbapi_cursor.nextset	  sc   € Ø�‰�D—L‘L×(Ñ(Ó*Ô+Ø�<‰<×#Ò#¨D×,<Ò,<Ü$×*Ñ*Ø—‘˜DŸL™L×1Ñ1Ó3Ó4óˆD�Jð -=Ð#r(   c                óR   — | j                   | j                  j                  |Ž «      S r   )rz   r{   r[   )r    Ú
inputsizess     r!   r[   z%AsyncAdapt_dbapi_cursor.setinputsizes  s%   € ð
 �{‰{Ð5˜4Ÿ<™<×5Ñ5°zÐBÓCÐCr(   c                ó   — | S r   r   r   s    r!   Ú	__enter__z!AsyncAdapt_dbapi_cursor.__enter__  s   € Øˆr(   c                ó$   — | j                  «        y r   )rG   )r    Útype_r0   Ú	tracebacks       r!   Ú__exit__z AsyncAdapt_dbapi_cursor.__exit__  s   € Ø�
‰
�r(   c              #  óx   K  — | j                   r*| j                   j                  «       –— | j                   rŒ)y y ­wr   ©r|   Úpopleftr   s    r!   Ú__iter__z AsyncAdapt_dbapi_cursor.__iter__  s)   è ø€ Ø�jŠjØ—*‘*×$Ñ$Ó&Ò&ð �j�jùs   ‚5:¸:c                óP   — | j                   r| j                   j                  «       S y r   r¯   r   s    r!   rQ   z AsyncAdapt_dbapi_cursor.fetchone!  s   € Ø�:Š:Ø—:‘:×%Ñ%Ó'Ð'àr(   c                ó´   — |€| j                   }| j                  }t        t        |t	        |«      «      «      D �cg c]  }|j                  «       ‘Œ c}S c c}w r   )rD   r|   ÚrangeÚminÚlenr°   )r    rU   ÚrrÚ_s       r!   rV   z!AsyncAdapt_dbapi_cursor.fetchmany'  sI   € Øˆ<Ø—>‘>ˆDØ�Z‰ZˆÜ&+¬C°´c¸"³gÓ,>Ô&?Ó@Ñ&? �—
‘
•Ð&?Ñ@Ð@ùÒ@s   »Ac                ód   — t        | j                  «      }| j                  j                  «        |S r   )Úlistr|   r—   )r    Úretvals     r!   rX   z AsyncAdapt_dbapi_cursor.fetchall-  s%   € Ü�d—j‘jÓ!ˆØ�
‰
×ÑÔØˆr(   )r‡   r€   )r'   r5   r3   r5   )r‹   r   r3   r5   )r3   z!Optional[_DBAPICursorDescription]rf   )r0   rA   r3   r4   r2   r   rg   )rJ   r   r    r   r3   r   )r§   r   r3   r4   )r3   r   )r«   r   r0   r   r¬   r   r3   r4   ©r3   zIterator[Any]rh   ri   rl   )r8   r9   r:   r„   Ú	__slots__r   rn   rˆ   rƒ   r‚   rm   r@   rC   rD   ÚsetterrE   r•   rG   rL   rO   r™   rŸ   rc   r[   r©   r­   r±   rQ   rV   rX   r   r(   r!   rw   rw   €   sy  … Ø€Kð€Ið %)Ð˜TÓ(àÓØ2Ó2Ø'Ó'ØÓó
-ó0ð#Ø0ð#à	ó#ð
 ò(ó ð(ð
 ò%ó ð%ð ò&ó ð&ð ×Ñò'ó ð'ð ò&ó ð&ó#ó$.ð& ;?ð<àð<ð 8ð<ð 
ó	<ð
<àð
<ð 4ð
<ð 
ó	
<ðØðØ*Mðà	óðPàðPð 4ðPð 
ó	PóóDóóó'óôAôr(   rw   c                  ó>   — e Zd ZdZdZd	d„Zd
d„Zddd„Zdd„Zdd„Z	y)ÚAsyncAdapt_dbapi_ss_cursorr   Tc                ó~   — | j                   �1| j                  | j                   j                  «       «       d | _         y y r   )r{   rz   rG   r   s    r!   rG   z AsyncAdapt_dbapi_ss_cursor.close7  s1   € Ø�<‰<Ð#Ø�K‰K˜Ÿ™×*Ñ*Ó,Ô-ØˆD�Lð $r(   c                óT   — | j                  | j                  j                  «       «      S r   )rz   r{   rQ   r   s    r!   rQ   z#AsyncAdapt_dbapi_ss_cursor.fetchone<  ó   € Ø�{‰{˜4Ÿ<™<×0Ñ0Ó2Ó3Ð3r(   Nc                óX   — | j                  | j                  j                  |¬«      «      S )N)rU   )rz   r{   rV   rT   s     r!   rV   z$AsyncAdapt_dbapi_ss_cursor.fetchmany?  s#   € Ø�{‰{˜4Ÿ<™<×1Ñ1°tÐ1Ó<Ó=Ð=r(   c                óT   — | j                  | j                  j                  «       «      S r   )rz   r{   rX   r   s    r!   rX   z#AsyncAdapt_dbapi_ss_cursor.fetchallB  rÃ   r(   c              #  ó¤   K  — | j                   j                  «       }	 	 | j                  |j                  «       «      –— Œ## t        $ r Y y w xY w­wr   )r{   re   rz   Ú	__anext__ÚStopAsyncIteration)r    Úiterators     r!   r±   z#AsyncAdapt_dbapi_ss_cursor.__iter__E  sP   è ø€ Ø—<‘<×)Ñ)Ó+ˆØðØ—k‘k (×"4Ñ"4Ó"6Ó7Ò7ð øô &ò Ùðüs(   ‚AŸ!A Á AÁ	AÁ
AÁAÁAr2   rh   r   )rU   rj   r3   r   rl   r¼   )
r8   r9   r:   r½   r„   rG   rQ   rV   rX   r±   r   r(   r!   rÀ   rÀ   3  s%   „ Ø€IØ€Kó ó
4ô>ó4ôr(   rÀ   c                  ó|   — e Zd ZU eZeZ ee«      Z	dZ
ded<   dd„Zddd„Z	 d	 	 	 	 	 dd„Zdd„Zdd	„Zdd
„Zdd„Zy)r€   )Údbapir¢   r   ry   c                óR   — || _         || _        t        j                  «       | _        y r   )rË   ry   ÚasyncioÚLockr¢   )r    rË   r‹   s      r!   rˆ   z$AsyncAdapt_dbapi_connection.__init__X  s   € ØˆŒ
Ø%ˆÔÜ%Ÿl™l›nˆÕr(   c                óJ   — |r| j                  | «      S | j                  | «      S r   )Ú_ss_cursor_clsÚ_cursor_cls)r    r„   s     r!   r'   z"AsyncAdapt_dbapi_connection.cursor]  s'   € ÙØ×&Ñ& tÓ,Ð,à×#Ñ# DÓ)Ð)r(   Nc                óJ   — | j                  «       }|j                  ||«       |S )z2lots of DBAPIs seem to provide this, so include it)r'   rL   )r    rJ   rK   r'   s       r!   rL   z#AsyncAdapt_dbapi_connection.executec  s"   € ð —‘“ˆØ�‰�y *Ô-Øˆr(   c                óR   — t        j                  «       }|j                  |d   «      ‚)Nr   )ÚsysÚexc_infoÚwith_traceback)r    rœ   rÕ   s      r!   r›   z-AsyncAdapt_dbapi_connection._handle_exceptionm  s"   € Ü—<‘<“>ˆà×"Ñ" 8¨A¡;Ó/Ð/r(   c                ó¦   — 	 | j                  | j                  j                  «       «       y # t        $ r}| j	                  |«       Y d }~y d }~ww xY wr   )rz   ry   r*   rš   r›   ©r    rœ   s     r!   r*   z$AsyncAdapt_dbapi_connection.rollbackr  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r   )rz   ry   r"   rš   r›   rØ   s     r!   r"   z"AsyncAdapt_dbapi_connection.commitx  sC   € ð	*Ø�K‰K˜×(Ñ(×/Ñ/Ó1Õ2øÜò 	*Ø×"Ñ" 5×)Ñ)ûð	*úrÙ   c                óV   — | j                  | j                  j                  «       «       y r   )rz   ry   rG   r   s    r!   rG   z!AsyncAdapt_dbapi_connection.close~  s   € Ø�‰�D×$Ñ$×*Ñ*Ó,Õ-r(   )rË   r   r‹   r   )F)r„   r~   r3   rw   r   rg   )rœ   rš   r3   r   r2   )r8   r9   r:   rw   rÑ   rÀ   rÐ   Ústaticmethodr   rz   r½   rn   rˆ   r'   rL   r›   r*   r"   rG   r   r(   r!   r€   r€   N  se   … Ø)€KØ/€Ná˜*Ó%€Fà+€Ià'Ó'ó-ô
*ð ;?ðàðð 8ðð 
ó	ó0ó
*ó*ô.r(   r€   c                  ó    — e Zd ZdZ ee«      Zy)Ú#AsyncAdaptFallback_dbapi_connectionr   N)r8   r9   r:   r½   rÜ   r   rz   r   r(   r!   rÞ   rÞ   ‚  s   „ Ø€Iá˜.Ó)�Fr(   rÞ   c                  ó4   — e Zd ZdZdZdd„Zd	d„Zdd„Zdd„Zy)
ÚAsyncAdapt_terminatezAMixin for a AsyncAdapt_dbapi_connection to add terminate support.r   c                ó6  — t        «       r4	 | j                  t        j                  | j	                  «       «      «       y | j                  «        y # | j                  «       $ r5}| j                  «        t        |t        j                  «      r‚ Y d }~y d }~ww xY wr   )	r   rz   rÍ   ÚshieldÚ_terminate_graceful_closeÚ_terminate_handled_exceptionsÚ_terminate_force_closeÚ
isinstanceÚCancelledError)r    Úes     r!   Ú	terminatezAsyncAdapt_terminate.terminate�  sy   € ÜŒ=ðà—‘œGŸN™N¨4×+IÑ+IÓ+KÓLÕMð ×'Ñ'Õ)øð ×5Ñ5Ó7ò 	ð ×+Ñ+Ô-Ü˜a¤×!7Ñ!7Ô8àô 9ûð	ús   Œ2A ÁBÁ#+BÂBc                óL   — t         j                  t         j                  t        fS )z\Returns the exceptions that should be handled when
        calling _graceful_close.
        )rÍ   ÚTimeoutErrorrç   ÚOSErrorr   s    r!   rä   z2AsyncAdapt_terminate._terminate_handled_exceptions¡  s   € ô ×$Ñ$¤g×&<Ñ&<¼gÐFÐFr(   c              ƒ  ó   K  — t         ‚­w)z"Try to close connection gracefully©ÚNotImplementedErrorr   s    r!   rã   z.AsyncAdapt_terminate._terminate_graceful_close§  s   è ø€ ä!Ð!ùs   ‚	c                ó   — t         ‚)zTerminate the connectionrî   r   s    r!   rå   z+AsyncAdapt_terminate._terminate_force_close«  s   € ä!Ð!r(   Nr2   )r3   zTuple[Type[BaseException], ...])	r8   r9   r:   r;   r½   ré   rä   rã   rå   r   r(   r!   rà   rà   ˆ  s   „ ÙKà€Ió*ó(Gó"ô"r(   rà   ))r;   Ú
__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   r5   rp   rw   rÀ   r€   rÞ   rà   r   r(   r!   Ú<module>rø      s»   ðñ Få "ã Û Û 
Ý Ý  Ý Ý Ý Ý Ý Ý Ý Ý  å &Ý Ý -Ý )Ý *Ý "áÝ;Ý<Ý=Ý/Ý"ô=˜Xô =ô*53˜ô 53÷p4ñ 4÷pñ pôfÐ!8ô ô61.Ð"3ô 1.ôh*Ð*Eô *÷%"ò %"r(   