+
    }¯³j96  ã                  ó6  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	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 ]P*                  '       d   ^RIHt ^RIHt ^RIHt  ! R R4      t]! 4       t]R 4       t]R 4       t]R 4       t ]R 4       t!R(R lt" ! R R4      t#R)R lt$]PJ                  R*R R ll4       t&]PJ                  R*R R ll4       t&R)RR /R! R" lllt&R(R# lt' ! R$ R%4      t( ! R& R'4      t)R# )+é    )ÚannotationsN)ÚAny)ÚDict)ÚOptional)ÚUnion)Úconfig)Ú	decorator)Ú
gc_collect)Úevent)Úpool)Ú
await_only)ÚLiteral)ÚEngine)ÚURL)ÚAsyncEnginec                  ó‚   € ] tR t^$tR tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tRtR# )ÚConnectionKillerc                	ó–   € \         P                  ! 4       V n        \        P                  ! \
        4      V n        \        4       V n        R # ©N)ÚweakrefÚWeakKeyDictionaryÚ
proxy_refsÚcollectionsÚdefaultdictÚsetÚtesting_enginesÚdbapi_connections©Úselfs   &Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sqlalchemy/testing/engines.pyÚ__init__ÚConnectionKiller.__init__%   s/   € Ü!×3Ò3Ó5ˆŒÜ*×6Ò6´sÓ;ˆÔÜ!$£ˆÖó    c                	ó  € \         P                  ! VR V P                  4       \         P                  ! VRV P                  4       \         P                  ! VRV P                  4       \         P                  ! VRV P                  4       R# )ÚcheckoutÚcheckinÚcloseÚclose_detachedN)r   ÚlistenÚ	_add_connÚ_remove_conn)r   r   s   &&r    Úadd_poolÚConnectionKiller.add_pool*   sY   € Ü�Š�T˜: t§~¡~Ô6Ü�Š�T˜9 d×&7Ñ&7Ô8Ü�Š�T˜7 D×$5Ñ$5Ô6Ü�Š�TÐ+¨T×->Ñ->Ö?r#   c                	óZ   € V P                   P                  V4       R V P                  V&   R# )TN)r   Úaddr   )r   Ú	dbapi_conÚ
con_recordÚ	con_proxys   &&&&r    r*   ÚConnectionKiller._add_conn2   s$   € Ø×Ñ×"Ñ" 9Ô-Ø%)ˆ�‰˜	Ó"r#   c                	ó<   € V P                   P                  V4       R # r   )r   Údiscard)r   Ú
dbapi_connÚargs   &&*r    r+   ÚConnectionKiller._remove_conn6   s   € Ø×Ñ×&Ñ& zÖ2r#   c                	ó’   € V P                  VP                  4       VR9   g   Q hV P                  V,          P                  V4       R# )ÚclassN)r:   ÚglobalÚfunctionÚfixture)r,   r   r   r/   )r   ÚengineÚscopes   &&&r    Ú
add_engineÚConnectionKiller.add_engine9   s:   € Ø�‰�f—k‘kÔ"àÐBÔBÐBÐBØ×Ñ˜UÕ#×'Ñ'¨Ö/r#   c                	ó‚   €  V! 4        R#   \          d)   p\        P                  ! R T,          4        Rp?R# Rp?ii ; i)z5testing_reaper couldn't rollback/close connection: %sN©Ú	ExceptionÚwarningsÚwarn©r   ÚfnÚes   && r    Ú_safeÚConnectionKiller._safe?   s5   € ð	ÙŽDøÜô 	Ü�MŠMØGÈ!ÕK÷ò ûð	úó   ‚ ‹>–9¹>c                	ó¨   € \        V P                  4       F8  pVf   K	  VP                  '       g   K  V P                  VP                  4       K:  	  R # r   )Úlistr   Úis_validrJ   Úrollback©r   Úrecs   & r    Úrollback_allÚConnectionKiller.rollback_allG   s2   € Ü˜Ÿ™Ö(ˆCØŒ 3§<§<¢<Ø—
‘
˜3Ÿ<™<Ö(ó )r#   c                	ó‚  € \        V P                  4       F]  pVf   K	  VP                  '       g   K  V P                  P	                  VP
                  4       V P                  VP                  4       K_  	  V P                   F  pV P                  VP                  4       K   	  V P                  P                  4        R # r   )
rN   r   rO   r   r5   Údbapi_connectionrJ   Ú_checkinrP   Úclear)r   rR   Úcons   &  r    Úcheckin_allÚConnectionKiller.checkin_allL   s‚   € ô ˜Ÿ™Ö(ˆCØŒ 3§<§<¢<Ø×&Ñ&×.Ñ.¨s×/CÑ/CÔDØ—
‘
˜3Ÿ<™<Ö(ñ )ð ×)Ô)ˆCØ�J‰J�s—|‘|Ö$ñ *à×Ñ×$Ñ$Ö&r#   c                	ó&   € V P                  4        R # r   )rZ   r   s   &r    Ú	close_allÚConnectionKiller.close_all[   s   € Ø×ÑÖr#   c                	óŽ   € \         P                  '       g   R # ^RIHp VP	                  VP
                  P                  V4       R # ©N©Ú	provision)r   Úbootstrapped_as_sqlalchemyÚ rb   Úprepare_for_drop_tablesr>   Úurl)r   Ú
connectionrb   s   && r    re   Ú(ConnectionKiller.prepare_for_drop_tables^   s0   € ä×0×0Ð0Ùåà×)Ñ)¨*×*;Ñ*;×*?Ñ*?ÀÖLr#   c                	óä  € V P                   V,          p\        V4       F½  p\        V P                  4       Fd  pVf   K	  VP                  '       g   K  VP                  f   K-  VP                  VP
                  J g   KI  V P                  VP                  4       Kf  	  \        VR4      '       d   \        VP                  4       4       K­  VP                  4        K¿  	  VP                  4        R # )NÚsync_engine)r   rN   r   rO   Ú_poolr   rJ   rW   Úhasattrr   ÚdisposerX   )r   r?   ÚengrR   Ú	proxy_refs   &&   r    Ú_drop_testing_enginesÚ&ConnectionKiller._drop_testing_enginesg   s¡   € Ø×"Ñ" 5Õ)ˆÜ˜–9ˆCÜ! $§/¡/Ö2�	ØÔ(¨Y×-?×-?Ò-?à!Ÿ™Ô3Ø%ŸO™O¨s¯x©xÕ7àŸ
™
 9×#5Ñ#5Ö6ñ 3ô �s˜M×*Ò*Ü˜3Ÿ;™;›=Ö)à—‘–ñ ð 	�	‰	Žr#   c                	óÊ   € V P                   V,          p\        V4       F@  p\        VR 4      '       d   \        VP	                  4       4       K0  VP	                  4        KB  	  R# )rj   N)r   rN   rl   r   rm   )r   r?   rn   rR   s   &&  r    Ú_dispose_testing_enginesÚ)ConnectionKiller._dispose_testing_enginesy   sD   € Ø×"Ñ" 5Õ)ˆÜ˜–9ˆCÜ�s˜M×*Ò*Ü˜3Ÿ;™;›=Ö)à—‘–ó	 r#   c                	ó(   € V P                  R 4       R# )r<   N)rp   r   s   &r    Ú
after_testÚConnectionKiller.after_test�   s   € Ø×"Ñ" :Ö.r#   c                	óp  € \         P                  '       g   R # VP                  P                  '       d   R # T P	                  4        ^RIHp \         P                  P                  4       ;_uu_ 4       pVP                  VP                  P                  V4       R R R 4       R #   + '       g   i     R # ; ir`   )r   rc   Ú	__class__Ú"__leave_connections_for_teardown__rZ   rd   rb   ÚdbÚconnectre   r>   rf   )r   Útestrb   Úconns   &&  r    Úafter_test_outside_fixturesÚ,ConnectionKiller.after_test_outside_fixtures„   sq   € ä×0×0Ð0Ùà�>‰>×<×<Ð<Ùà×ÑÔõ
 	 ä�Y‰Y×Ñ× Ô  DØ×-Ñ-¨d¯k©k¯o©o¸tÔD÷ !× × Ò ús   Á3'B$Â$B5	c                	ój   € V P                  4        V P                  R 4       V P                  R4       R# )r<   r:   N)rZ   rp   r   s   &r    Ústop_test_class_inside_fixturesÚ0ConnectionKiller.stop_test_class_inside_fixtures–   s*   € Ø×ÑÔØ×"Ñ" :Ô.Ø×"Ñ" 7Ö+r#   c                	óò  € \         P                  P                  '       dŒ   \        4        \         P                  P                  '       db   \	        \         P                  P                  4      p\         P                  P                  P                  4        V^8”  d    Q RV,          4       h\        P                  '       d6   \        P                  P                  '       d   V P                  R4       R# R# R# )é   z/%d connection recs not cleared after test suiter;   N)
r   ÚbaseÚ_strong_ref_connection_recordsr
   ÚlenrX   r   ÚoptionsÚlow_connectionsrs   )r   Úlns   & r    Ú stop_test_class_outside_fixturesÚ1ConnectionKiller.stop_test_class_outside_fixtures›   s¥   € ô �9‰9×3×3Ð3ÜŒLä�y‰y×7×7Ð7ÜœŸ™×AÑAÓB�Ü—	‘	×8Ñ8×>Ñ>Ô@à˜”6ð
 ðPàHÈBÕOóPØä�>�>ˆ>œfŸn™n×<×<Ð<ð ×)Ñ)¨(Ö3ñ =‰>r#   c                	ón   € V P                  4        V P                   F  pV P                  V4       K  	  R # r   )rZ   r   rp   )r   r?   s   & r    Úfinal_cleanupÚConnectionKiller.final_cleanup±   s,   € Ø×ÑÔØ×)Ô)ˆEØ×&Ñ& uÖ-ó *r#   c                	óT   € V P                    F  pVP                  '       g   K  Q h	  R# ©FN)r   rO   rQ   s   & r    Úassert_all_closedÚ"ConnectionKiller.assert_all_closed¶   s   € Ø—?”?ˆCØ�|�|Š|Ø�uó #r#   )r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r!   r,   r*   r+   r@   rJ   rS   rZ   r]   re   rp   rs   rv   r   r‚   rŒ   r�   r“   Ú__static_attributes__© r#   r    r   r   $   s_   † ò'ò
@ò*ò3ò0òò)ò
'òòMòò$ò/òEò$,ò
4ò,.ö
r#   r   c                ór   €  V ! V/ VB  \         P                  4        R #   \         P                  4        i ; ir   )Útesting_reaperr“   ©rH   ÚargsÚkws   &*,r    Úassert_conns_closedr    ¿   s+   € ð+Ù
ˆDˆ�BŠä×(Ñ(Ö*øŒ×(Ñ(Õ*úó   ‚   6c                ór   €  V ! V/ VB  \         P                  4        R#   \         P                  4        i ; i)zBDecorator that rolls back all open connections after fn execution.N)rœ   rS   r�   s   &*,r    Úrollback_open_connectionsr£   Ç   s+   € ð&Ù
ˆDˆ�BŠä×#Ñ#Ö%øŒ×#Ñ#Õ%úr¡   c                ó>   € \         P                  4        V ! V/ VB  R# )z:Decorator that closes all connections before fn execution.N©rœ   rZ   r�   s   &*,r    Úclose_firstr¦   Ñ   s   € ô ×ÑÔ Ùˆ€O�„Or#   c                ór   €  V ! V/ VB  \         P                  4        R#   \         P                  4        i ; i)z9Decorator that closes all connections after fn execution.Nr¥   r�   s   &*,r    Úclose_open_connectionsr¨   Ù   s+   € ð%Ù
ˆDˆ�BŠä×"Ñ"Ö$øŒ×"Ñ"Õ$úr¡   c              #  óø   "  € ^ RI Hp VP                   F_  pV '       d	   W 9   d   K  \        WR4      pV'       g'   \        \	        RV,          4      P                  V4      pVP                  4       x € Ka  	  R# 5i)r   Nzsqlalchemy.dialects.%s)Úsqlalchemy.dialectsÚdialectsÚ__all__ÚgetattrÚ
__import__Údialect)ÚexcludeÚdÚnameÚmods   &   r    Úall_dialectsr´   â   s]   é € Ý#à—	”	ˆç�t”ÙÜ�a˜tÓ$ˆßÜÜÐ3°dÕ:Ó;×DÑDÀdóˆCð �k‰k‹mÔó ùs   ‚A8A:c                  ó>   € ] tR t^ñtR tR tR tR tR	R ltR t	Rt
R# )
ÚReconnectFixturec                	ó.   € Wn         . V n        R V n        R# r’   )ÚdbapiÚconnectionsÚ
is_stopped)r   r¸   s   &&r    r!   ÚReconnectFixture.__init__ò   s   € ØŒ
ØˆÔØˆŽr#   c                	ó.   € \        V P                  V4      # r   )r­   r¸   ©r   Úkeys   &&r    Ú__getattr__ÚReconnectFixture.__getattr__÷   s   € Ü�t—z‘z 3Ó'Ð'r#   c                	ó  € V P                   P                  ! V/ VB pV P                  '       dD   V P                  VP                  4       VP                  4       pVP                  R 4       Q R4       hV P                  P                  V4       V# )zselect 1z%simulated connect failure didn't work)	r¸   r|   rº   rJ   r'   ÚcursorÚexecuter¹   Úappend)r   rž   Úkwargsr~   Úcurss   &*,  r    r|   ÚReconnectFixture.connectú   sq   € Ø�z‰z×!Ò! 4Ð2¨6Ñ2ˆØ�?�?ˆ?Ø�J‰J�t—z‘zÔ"Ø—;‘;“=ˆDð �L‰L˜Ô$ØAÐAÓA�5à×Ñ×#Ñ# DÔ)ØˆKr#   c                	ó‚   €  V! 4        R#   \          d)   p\        P                  ! R T,          4        Rp?R# Rp?ii ; i)z.ReconnectFixture couldn't close connection: %sNrC   rG   s   && r    rJ   ÚReconnectFixture._safe  s4   € ð	PÙŽDøÜô 	PÜ�MŠMÐJÈQÕN×OÒOûð	PúrL   c                	óŽ   € Wn         \        V P                  4       F  pV P                  VP                  4       K   	  . V n        R # r   )rº   rN   r¹   rJ   r'   )r   ÚstopÚcs   && r    ÚshutdownÚReconnectFixture.shutdown  s6   € ð ŒÜ�d×&Ñ&Ö'ˆAØ�J‰J�q—w‘wÖñ (àˆÖr#   c                	ó   € R V n         R# r’   )rº   r   s   &r    ÚrestartÚReconnectFixture.restart  s	   € ØˆŽr#   )r¹   r¸   rº   N)F)r•   r–   r—   r˜   r!   r¿   r|   rJ   rÍ   rÐ   r™   rš   r#   r    r¶   r¶   ñ   s!   † ò ò
(òòPô	ö r#   r¶   c                ó¨  aa€ T ;'       g    \         P                  P                  p \         P                  P                  P                  pV'       g   / p\        V4      VR &   \        W4      oSP                  oVV3R lpSP                  P                  P                  Sn	        SP                  P                  P                  Sn        VSn        S# )Úmodulec                 ó”   <€ SP                   P                  P                  4        R SP                   P                  n        S ! 4        R# r’   )r¯   r¸   rÍ   rº   )Ú_disposer>   s   €€r    rm   Ú$reconnecting_engine.<locals>.dispose%  s0   ø€ Ø�‰×Ñ×%Ñ%Ô'Ø*/ˆ�‰×ÑÔ'ÙŽ
r#   )r   r{   rf   r¯   r¸   r¶   Útesting_enginerm   rÍ   Útest_shutdownrÐ   Útest_restart)rf   r‰   r¸   rm   rÕ   r>   s   &&  @@r    Úreconnecting_enginerÚ     sš   ù€ Ø
×
Ð
”—‘—‘€CÜ�I‰I×Ñ×#Ñ#€EßØˆÜ(¨Ó/€GˆHÑÜ˜CÓ)€FØ�~‰~€Höð
 "Ÿ>™>×/Ñ/×8Ñ8€FÔØ Ÿ.™.×.Ñ.×6Ñ6€FÔØ€F„NØ€Mr#   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r…   rf   úOptional[URL]r‰   úOptional[Dict[str, Any]]ÚasynciozLiteral[False]Úreturnr   rš   )Úformats   "r    Ú__annotate__rá   1  s0   € ÷ ñ Ø	ðà%ðð ð	ð
 ñr#   c               ó   € R # r   rš   ©rf   r‰   rÞ   s   &&$r    r×   r×   0  s   € ñ r#   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r…   rf   rÜ   r‰   rÝ   rÞ   zLiteral[True]rß   r   rš   )rà   s   "r    rá   rá   :  s0   € ÷ ñ Ø	ðà%ðð ð	ð
 ñr#   c               ó   € R # r   rš   rã   s   &&$r    r×   r×   9  s   € ñ r#   rÞ   Fc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r…   rf   rÜ   r‰   rÝ   rÞ   Úboolrß   zUnion[Engine, AsyncEngine]rš   )rà   s   "r    rá   rá   B  s6   € ÷ Fñ FØ	ðFà%ðFð ð	Fð
  ñFr#   c          
     ó&  € V'       d   ^ RI Hp M^ RIHp ^ RIHp T! V '       d   T M\        P                  P                  4      p V'       g   / p/ p\        P                  V3 Fb  pV'       g   K  TP                  VP                  4        UUu/ uF)  w  rxVR9  g   K  VP                  R4      '       d   K'  WxbK+  	  upp4       Kd  	  V! V 3/ VB p	\        P                  '       d6   \        P                  P                  '       d   \        P!                  R4       VP#                  RR4      p
V
R8X  d"   V'       d   R	V	P$                  n        MR	V	n        ^R
IHp VP-                  V	P                  W‘V
4       VP#                  RR	4      pV'       d   \        P/                  Wš4       \1        V	P2                  \2        P4                  4      '       d8   RV9  d1   RV9  d*   RV9  d#   ^ V	P2                  n        ^ V	P2                  n        V	# u uppi )r   )Úcreate_async_engine)Úcreate_engine)Úmake_urlr?   Ú
use_reaperÚsqlite_r;   r<   Tra   r   Úpool_timeoutÚmax_overflow)r?   rì   )Úsqlalchemy.ext.asyncioré   Ú
sqlalchemyrê   Úsqlalchemy.engine.urlrë   r   r{   rf   Údb_optsÚupdateÚitemsÚ
startswithr‰   rŠ   rœ   rs   Úgetrj   Ú_has_eventsrd   rb   Úpost_configure_testing_enginer@   Ú
isinstancer   Ú	QueuePoolÚ_timeoutÚ_max_overflow)rf   r‰   rÞ   rê   rë   Úuse_optionsÚopt_dictÚoptÚvaluer>   r?   rb   rì   s   &&$          r    r×   r×   B  s£  € ÷ ö	
õ 	-Ý.á
Ÿ#‘3¤6§9¡9§=¡=Ó
1€CçØˆà€Kä—^‘^ WÓ-ˆßÙØ×Ñð #+§.¡.Ô"2ôá"2‘J�CØÐ5Ñ5ô ð Ÿ™ y×1ô �’
Ù"2òö	
ñ .ñ ˜3Ñ. +Ñ.€Fä‡~‡~€~œ&Ÿ.™.×8×8Ð8ô 	×/Ñ/°Ô9à�K‰K˜ Ó,€EØ�ÔßØ-1ˆF×ÑÕ*ð ð Ôõ à×+Ñ+¨F¯J©J¸ÈÔOð
 —‘˜\¨4Ó0€JßÜ×!Ñ! &Ô0ô 	�6—;‘;¤§¡×/Ò/Ø˜'Ô!Ø 'Ô)Ø 'Ô)à ˆ�‰ÔØ$%ˆ�‰Ô!à€MùóYs   ÂHÂHÂ8Hc                óô   aa€ ^ RI Hp V '       g   \        P                  P                  p . oV3R lpV3R lpV3R lpV! V R,           V4      o\        SR4      '       d   Q hSSn        VSn        VSn        S# )a  Provides a mocking engine based on the current testing.db.

This is normally used to test DDL generation flow as emitted
by an Engine.

It should not be used in other cases, as assert_compile() and
assert_sql_execution() are much better choices with fewer
moving parts.

)Úcreate_mock_enginec                ó*   <€ SP                  V 4       R # r   )rÄ   )ÚsqlÚarŸ   Úbuffers   &*,€r    ÚexecutorÚmock_engine.<locals>.executorž  s   ø€ Ø�‰�cÖr#   c           
     óŒ   <€ S Uu. uF$  p\         P                  ! R R\        V4      4      NK&  	  ppW 8X  g   Q V4       hR# u upi )z[\n\t]rd   N)ÚreÚsubÚstr)ÚstmtsÚsÚrecvr  s   &  €r    Ú
assert_sqlÚmock_engine.<locals>.assert_sql¡  s<   ø€ Ù7=Ó>±v°!”—’�y "¤c¨!£fÖ-±vˆÐ>ØŒ}Ð"˜dÓ"Š}ùò ?s   †*Ac                 óh   <a € SP                   o R P                  V 3R lSP                   4       4      # )Ú
c              3  óZ   <"  € T F   p\        VP                  SR 7      4      x € K"  	  R# 5i))r¯   N)r  Úcompile)Ú.0r  r±   s   & €r    Ú	<genexpr>Ú1mock_engine.<locals>.print_sql.<locals>.<genexpr>§  s$   øé € ÐH¹K°qœ˜QŸY™Y¨q˜YÓ1×2Ð2»Kùs   ƒ(+)r¯   ÚjoinÚmock)r±   r>   s   @€r    Ú	print_sqlÚmock_engine.<locals>.print_sql¥  s%   ù€ Ø�N‰NˆØ�y‰yÔH¸F¿KºKÓHÓHÐHr#   z://r  )	rñ   r  r   r{   r²   rl   r  r  r  )Údialect_namer  r  r  r  r  r>   s   &    @@r    Úmock_enginer  ‹  so   ù€ õ .çÜ—y‘y—~‘~ˆà€Fõõ#õIñ   ¨uÕ 4°hÓ?€FÜ�v˜v×&Ò&Ð&Ð&Ø€F„KØ"€FÔØ €FÔØ€Mr#   c                  ó<   € ] tR tRtRtR tR
R ltR tR tR t	R	t
R# )ÚDBAPIProxyCursori±  ziProxy a DBAPI cursor.

Tests can provide subclasses of this to intercept
DBAPI-level cursor operations.

c                	óL   € Wn         W n        VP                  ! V/ VB V n        R # r   )r>   rg   rÂ   )r   r>   r~   rž   rÅ   s   &&&*,r    r!   ÚDBAPIProxyCursor.__init__¹  s!   € ØŒØŒØ—k’k 4Ð2¨6Ñ2ˆŽr#   Nc                	ó†   € V'       d   V P                   P                  ! W3/ VB # V P                   P                  ! V3/ VB # r   )rÂ   rÃ   )r   ÚstmtÚ
parametersrŸ   s   &&&,r    rÃ   ÚDBAPIProxyCursor.execute¾  s9   € ßØ—;‘;×&Ò& tÑ>¸2Ñ>Ð>à—;‘;×&Ò& tÑ2¨rÑ2Ð2r#   c                	ó<   € V P                   P                  ! W3/ VB # r   )rÂ   Úexecutemany)r   r%  ÚparamsrŸ   s   &&&,r    r)  ÚDBAPIProxyCursor.executemanyÄ  s   € Ø�{‰{×&Ò& tÑ:°rÑ:Ð:r#   c                	ó,   € \        V P                  4      # r   )ÚiterrÂ   r   s   &r    Ú__iter__ÚDBAPIProxyCursor.__iter__Ç  s   € Ü�D—K‘KÓ Ð r#   c                	ó.   € \        V P                  V4      # r   )r­   rÂ   r½   s   &&r    r¿   ÚDBAPIProxyCursor.__getattr__Ê  s   € Ü�t—{‘{ CÓ(Ð(r#   )rg   rÂ   r>   r   )r•   r–   r—   r˜   Ú__doc__r!   rÃ   r)  r.  r¿   r™   rš   r#   r    r!  r!  ±  s    † ñò3ô
3ò;ò!ö)r#   r!  c                  ó2   € ] tR tRtRtR tR tR tR tRt	R# )	ÚDBAPIProxyConnectioniÎ  zqProxy a DBAPI connection.

Tests can provide subclasses of this to intercept
DBAPI-level connection operations.

c                	ó*   € W n         Wn        W0n        R # r   )r~   r>   Ú
cursor_cls)r   r>   r~   r6  s   &&&&r    r!   ÚDBAPIProxyConnection.__init__Ö  s   € ØŒ	ØŒØ$Žr#   c                	óX   € V P                   ! V P                  V P                  .VO5/ VB # r   )r6  r>   r~   )r   rž   rÅ   s   &*,r    rÂ   ÚDBAPIProxyConnection.cursorÛ  s%   € Ø�Š˜tŸ{™{¨D¯I©IÐG¸ÒGÀÑGÐGr#   c                	ó:   € V P                   P                  4        R # r   )r~   r'   r   s   &r    r'   ÚDBAPIProxyConnection.closeÞ  s   € Ø�	‰	�‰Ör#   c                	ó.   € \        V P                  V4      # r   )r­   r~   r½   s   &&r    r¿   Ú DBAPIProxyConnection.__getattr__á  s   € Ü�t—y‘y #Ó&Ð&r#   )r~   r6  r>   N)
r•   r–   r—   r˜   r2  r!   rÂ   r'   r¿   r™   rš   r#   r    r4  r4  Î  s   † ñò%ò
Hòö'r#   r4  r   )NN)..)*Ú
__future__r   r   r  Útypingr   r   r   r   rE   r   rd   r   Úutilr	   r
   r   r   r   Úutil.typingr   ÚTYPE_CHECKINGr>   r   Ú
engine.urlr   Úext.asyncior   r   rœ   r    r£   r¦   r¨   r´   r¶   rÚ   Úoverloadr×   r  r!  r4  rš   r#   r    Ú<module>rF     s-  ðõ #ã Û 	Û Ý Ý Ý Ý Û Û å Ý Ý Ý Ý Ý Ý !à	××ÐÝÝ Ý)÷Uñ Uñp "Ó#€ð ñ+ó ð+ð ñ&ó ð&ð ñó ðð ñ%ó ð%ô÷( ñ ( ôVð( ‡�öó ðð ‡�öó ðñFð ÷	Fð FôR#÷L)ñ )÷:'ó 'r#   