Files
aitsc/.venv/Lib/site-packages/sqlalchemy/testing/__pycache__/engines.cpython-312.pyc

111 lines
21 KiB
Plaintext
Raw Normal View History

2025-02-23 09:07:52 +08:00
<EFBFBD>
2025-08-29 00:34:40 +08:00
<00><19>h@6<00><01>:<00>ddlmZddlZddlZddlZddlmZddlmZddlmZddlZddl Z ddl
2025-02-23 09:07:52 +08:00
m Z ddl m Z dd l mZd
d l
mZd
d l
mZd
d l mZd
dlmZej(rd
dlmZd
dlmZd
dlmZGd<12>d<13>Ze<1B>Ze d<14><00>Ze d<15><00>Ze d<16><00>Ze d<17><00>Z d$d<18>Z!Gd<19>d<1A>Z"d%d<1B>Z#ejH d& d'd<1C><05>Z%ejH d( d)d<1D><05>Z% d*d<1E>Z%d$d<1F>Z&Gd <20>d!<21>Z'Gd"<22>d#<23>Z(y)+<2B>)<01> annotationsN)<01>Any)<01>Dict)<01>Optional<61>)<01>config)<01> decorator)<01>
gc_collect<EFBFBD>)<01>event)<01>pool)<01>
await_only)<01>Literal)<01>Engine)<01>URL)<01> AsyncEnginec<01>r<00>eZdZd<01>Zd<02>Zd<03>Zd<04>Zd<05>Zd<06>Zd<07>Z d<08>Z
d <09>Z d
<EFBFBD>Z d <0B>Z d <0C>Zd <0A>Zd<0E>Zd<0F>Zd<10>Zd<11>Zy)<13>ConnectionKillerc<01><><00>tj<00>|_tjt
<00>|_t <00>|_y<00>N)<08>weakref<65>WeakKeyDictionary<72>
2025-08-29 00:34:40 +08:00
proxy_refs<EFBFBD> collections<6E> defaultdict<63>set<65>testing_engines<65>dbapi_connections<6E><01>selfs <20>GD:\pythonpj\aitsc\.venv\Lib\site-packages\sqlalchemy/testing/engines.py<70>__init__zConnectionKiller.__init__%s/<00><00>!<21>3<>3<>5<><04><0F>*<2A>6<>6<>s<EFBFBD>;<3B><04><1C>!$<24><15><04><1E>c<01> <00>tj|d|j<00>tj|d|j<00>tj|d|j<00>tj|d|j<00>y)N<>checkout<75>checkin<69>close<73>close_detached)r <00>listen<65> _add_conn<6E> _remove_conn)r r s r!<00>add_poolzConnectionKiller.add_pool*sY<00><00> <0A> <0C> <0C>T<EFBFBD>:<3A>t<EFBFBD>~<7E>~<7E>6<> <0A> <0C> <0C>T<EFBFBD>9<EFBFBD>d<EFBFBD>&7<>&7<>8<> <0A> <0C> <0C>T<EFBFBD>7<EFBFBD>D<EFBFBD>$5<>$5<>6<> <0A> <0C> <0C>T<EFBFBD>+<2B>T<EFBFBD>-><3E>-><3E>?r#c<01>X<00>|jj|<01>d|j|<y)NT)r<00>addr)r <00> dbapi_con<6F>
2025-02-23 09:07:52 +08:00
con_record<EFBFBD> con_proxys r!r*zConnectionKiller._add_conn2s$<00><00> <0C><1E><1E>"<22>"<22>9<EFBFBD>-<2D>%)<29><04><0F><0F> <09>"r#c<01>:<00>|jj|<01>yr)r<00>discard)r <00>
dbapi_conn<EFBFBD>args r!r+zConnectionKiller._remove_conn6s<00><00> <0C><1E><1E>&<26>&<26>z<EFBFBD>2r#c<01><><00>|j|j<00>|dvsJ<00>|j|j|<01>y)N)<04>class<73>global<61>function<6F>fixture)r,r rr.)r <00>engine<6E>scopes r!<00>
add_enginezConnectionKiller.add_engine9s:<00><00> <0C> <0A> <0A>f<EFBFBD>k<EFBFBD>k<EFBFBD>"<22><14>B<>B<>B<>B<> <0C><1C><1C>U<EFBFBD>#<23>'<27>'<27><06>/r#c<01>p<00> |<01>y#t$r"}tjd|z<00>Yd}~yd}~wwxYw)Nz5testing_reaper couldn't rollback/close connection: %s<><03> Exception<6F>warnings<67>warn<72>r <00>fn<66>es r!<00>_safezConnectionKiller._safe?s5<00><00> <0E> <0E>D<EFBFBD><44><18> <0E> <14>M<EFBFBD>M<EFBFBD>G<>!<21>K<> <0E> <0E><> <0E><><00>
<00> 5<03>0<03>5c<01><><00>t|j<00>D]-}|<01><01>|js<01>|j|j<00><00>/yr)<05>listr<00>is_validrF<00>rollback<63>r <00>recs r!<00> rollback_allzConnectionKiller.rollback_allGs0<00><00><17><04><0F><0F>(<28>C<EFBFBD><12><EFBFBD>3<EFBFBD><<3C><<3C><14>
<EFBFBD>
<EFBFBD>3<EFBFBD><<3C><<3C>(<28>)r#c<01>d<00>t|j<00>D]R}|<01><01>|js<01>|jj |j
<00>|j |j<00><00>T|jD]}|j |j<00><00>|jj<00>yr)
rIrrJrr3<00>dbapi_connectionrF<00>_checkinrK<00>clear)r rM<00>cons r!<00> checkin_allzConnectionKiller.checkin_allLs<><00><00><18><04><0F><0F>(<28>C<EFBFBD><12><EFBFBD>3<EFBFBD><<3C><<3C><14>&<26>&<26>.<2E>.<2E>s<EFBFBD>/C<>/C<>D<><14>
<EFBFBD>
<EFBFBD>3<EFBFBD><<3C><<3C>(<28>)<29><18>)<29>)<29>C<EFBFBD> <10>J<EFBFBD>J<EFBFBD>s<EFBFBD>|<7C>|<7C> $<24>*<2A> <0C><1E><1E>$<24>$<24>&r#c<01>$<00>|j<00>yr)rTrs r!<00> close_allzConnectionKiller.close_all[s<00><00> <0C><18><18>r#c<01>~<00>tjsyddlm}|j |j
j |<01>y<00>Nr)<01> provision)r<00>bootstrapped_as_sqlalchemy<6D>rY<00>prepare_for_drop_tablesr;<00>url)r <00>
connectionrYs r!r\z(ConnectionKiller.prepare_for_drop_tables^s-<00><00><15>0<>0<> <12><1F><11>)<29>)<29>*<2A>*;<3B>*;<3B>*?<3F>*?<3F><1A>Lr#c<01><><00>|j|}t|<02>D]<5D>}t|j<00>D]S}|<04><01>|js<01>|j<00><01> |j|j
us<01>9|j |j<00><00>Ut|d<01>rt|j<00><00><00><>|j<00><00><>|j<00>y)N<> sync_engine) rrIrrJ<00>_poolr rFrQ<00>hasattrr<00>disposerR)r r<<00>engrM<00> proxy_refs r!<00>_drop_testing_enginesz&ConnectionKiller._drop_testing_enginesgs<><00><00><12>"<22>"<22>5<EFBFBD>)<29><03><17><03>9<EFBFBD>C<EFBFBD>!<21>$<24>/<2F>/<2F>2<> <09><1C>(<28>Y<EFBFBD>-?<3F>-?<3F>!<21><0F><0F>3<>%<25>O<EFBFBD>O<EFBFBD>s<EFBFBD>x<EFBFBD>x<EFBFBD>7<><1C>
<EFBFBD>
<EFBFBD>9<EFBFBD>#5<>#5<>6<> 3<><17>s<EFBFBD>M<EFBFBD>*<2A><1A>3<EFBFBD>;<3B>;<3B>=<3D>)<29><13> <0B> <0B> <0A><1D> <0C> <09> <09> r#c<01>&<00>|jd<01>y)Nr9)rfrs r!<00>
after_testzConnectionKiller.after_testxs<00><00> <0C>"<22>"<22>:<3A>.r#c<01>2<00>tjsy|jjry|j <00>ddlm}tjj<00>5}|j|jj|<03>ddd<00>y#1swYyxYwrX) rrZ<00> __class__<5F>"__leave_connections_for_teardown__rTr[rY<00>db<64>connectr\r;r])r <00>testrY<00>conns r!<00>after_test_outside_fixturesz,ConnectionKiller.after_test_outside_fixtures{se<00><00><15>0<>0<> <12> <0F>><3E>><3E> <<3C> <<3C> <12> <0C><18><18><1A>
<20> <13>Y<EFBFBD>Y<EFBFBD> <1E> <1E> <20>D<EFBFBD> <15> -<2D> -<2D>d<EFBFBD>k<EFBFBD>k<EFBFBD>o<EFBFBD>o<EFBFBD>t<EFBFBD> D<>!<21> <20> <20>s <00>'B <03> Bc<01>h<00>|j<00>|jd<01>|jd<02>y)Nr9r7)rTrfrs r!<00>stop_test_class_inside_fixturesz0ConnectionKiller.stop_test_class_inside_fixtures<65>s*<00><00> <0C><18><18><1A> <0C>"<22>"<22>:<3A>.<2E> <0C>"<22>"<22>7<EFBFBD>+r#c<01>.<00>tjjr{t<00>tjjrVt tjj<00>}tjjj <00> Jd|z<00><00>yy)Nz/%d connection recs not cleared after test suite)r <00>base<73>_strong_ref_connection_recordsr
<00>lenrR)r <00>lns r!<00> stop_test_class_outside_fixturesz1ConnectionKiller.stop_test_class_outside_fixtures<65>sq<00><00> <10>9<EFBFBD>9<EFBFBD> 3<> 3<> <16>L<EFBFBD><13>y<EFBFBD>y<EFBFBD>7<>7<><18><14><19><19>A<>A<>B<><02><14> <09> <09>8<>8<>><3E>><3E>@<40><19>L<01>D<><02>K<>L<01><19> 8<> 4r#c<01>h<00>|j<00>|jD]}|j|<01><00>yr)rTrrf)r r<s r!<00> final_cleanupzConnectionKiller.final_cleanup<75>s,<00><00> <0C><18><18><1A><19>)<29>)<29>E<EFBFBD> <10> &<26> &<26>u<EFBFBD> -<2D>*r#c<01>B<00>|jD]}|js<01>J<00>yr)rrJrLs r!<00>assert_all_closedz"ConnectionKiller.assert_all_closed<65>s<00><00><17>?<3F>?<3F>C<EFBFBD><12>|<7C>|<7C><1C>u<EFBFBD>#r#N)<14>__name__<5F>
__module__<EFBFBD> __qualname__r"r,r*r+r=rFrNrTrVr\rfrhrprrrxrzr|<00>r#r!rr$s[<00><00>'<27>
@<01>*<2A>3<>0<> <0E>)<29>
'<27><1B>M<01><14>"/<2F>E<01>$,<2C>
L<01>.<2E>
r#rc<01>p<00> ||i|<02><01>tj<00>y#tj<00>wxYwr)<02>testing_reaperr|<00>rD<00>args<67>kws r!<00>assert_conns_closedr<64><00>s+<00><00>+<2B>
<EFBFBD>D<EFBFBD><0F>B<EFBFBD><0F><16>(<28>(<28>*<2A><><0E>(<28>(<28>*<2A><><00><00>5c<01>p<00> ||i|<02><01>tj<00>y#tj<00>wxYw)zBDecorator that rolls back all open connections after fn execution.N)r<>rNr<>s r!<00>rollback_open_connectionsr<73><00>s+<00><00>&<26>
<EFBFBD>D<EFBFBD><0F>B<EFBFBD><0F><16>#<23>#<23>%<25><><0E>#<23>#<23>%<25>r<EFBFBD>c<01><<00>tj<00>||i|<02><01>y)z:Decorator that closes all connections before fn execution.N<>r<>rTr<>s r!<00> close_firstr<74><00>s<00><00><13><1E><1E> <20><06><04>O<EFBFBD><02>Or#c<01>p<00> ||i|<02><01>tj<00>y#tj<00>wxYw)z9Decorator that closes all connections after fn execution.Nr<4E>r<>s r!<00>close_open_connectionsr<73><00>s+<00><00>%<25>
<EFBFBD>D<EFBFBD><0F>B<EFBFBD><0F><16>"<22>"<22>$<24><><0E>"<22>"<22>$<24>r<EFBFBD>c#<01><>K<00>ddlm}|jD]L}|r||vr<01>
t||d<00>}|s"tt d|z<00>j|<02>}|j <00><00><01><00>Ny<00>w)Nrzsqlalchemy.dialects.%s)<06>sqlalchemy.dialects<74>dialects<74>__all__<5F>getattr<74>
__import__<EFBFBD>dialect)<04>exclude<64>d<>name<6D>mods r!<00> all_dialectsr<73><00>sb<00><00><><00>#<23><11> <09> <09><04> <12>t<EFBFBD>w<EFBFBD><EFBFBD> <14><15>a<EFBFBD><14>t<EFBFBD>$<24><03><12><19><1A>3<>d<EFBFBD>:<3A>;<3B>D<>D<>d<EFBFBD><0E>C<EFBFBD><12>k<EFBFBD>k<EFBFBD>m<EFBFBD><1B><1A>s<00>A#A%c<01>2<00>eZdZd<01>Zd<02>Zd<03>Zd<04>Zdd<05>Zd<06>Zy) <09>ReconnectFixturec<01>.<00>||_g|_d|_y<00>NF)<03>dbapi<70> connections<6E>
is_stopped)r r<>s r!r"zReconnectFixture.__init__<5F>s<00><00><1A><04>
<EFBFBD><1D><04><18><1F><04>r#c<01>.<00>t|j|<01>Sr)r<>r<><00>r <00>keys r!<00> __getattr__zReconnectFixture.__getattr__<5F>s<00><00><16>t<EFBFBD>z<EFBFBD>z<EFBFBD>3<EFBFBD>'<27>'r#c<01><00>|jj|i|<02><01>}|jrC|j|j<00>|j <00>}|j d<01>Jd<02><00>|jj|<03>|S)Nzselect 1z%simulated connect failure didn't work) r<>rmr<>rFr'<00>cursor<6F>executer<65><00>append)r r<><00>kwargsro<00>curss r!rmzReconnectFixture.connect<63>sq<00><00>!<21>t<EFBFBD>z<EFBFBD>z<EFBFBD>!<21>!<21>4<EFBFBD>2<>6<EFBFBD>2<><04> <0F>?<3F>?<3F> <10>J<EFBFBD>J<EFBFBD>t<EFBFBD>z<EFBFBD>z<EFBFBD> "<22><17>;<3B>;<3B>=<3D>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><1A> $<24> A<>A<> A<>5<EFBFBD> <10> <1C> <1C> #<23> #<23>D<EFBFBD> )<29><17>Kr#c<01>p<00> |<01>y#t$r"}tjd|z<00>Yd}~yd}~wwxYw)Nz.ReconnectFixture couldn't close connection: %sr?rCs r!rFzReconnectFixture._safe<66>s4<00><00> P<01> <0E>D<EFBFBD><44><18> P<01> <14>M<EFBFBD>M<EFBFBD>J<>Q<EFBFBD>N<> O<> O<><4F> P<01>rGc<01><><00>||_t|j<00>D]}|j|j<00><00>g|_yr)r<>rIr<>rFr')r <00>stop<6F>cs r!<00>shutdownzReconnectFixture.shutdown<77>s8<00><00> <1F><04><0F><15>d<EFBFBD>&<26>&<26>'<27>A<EFBFBD> <10>J<EFBFBD>J<EFBFBD>q<EFBFBD>w<EFBFBD>w<EFBFBD> <1F>(<28><1D><04>r#c<01><00>d|_yr<>)r<>rs r!<00>restartzReconnectFixture.restarts <00><00><1F><04>r#N)F) r}r~rr"r<>rmrFr<>r<>r<>r#r!r<>r<><00>s!<00><00> <20>
(<28> <18>P<01> <1E> r#r<>c<01><><00><04><05>|xstjj}tjjj}|si}t |<02>|d<t ||<01><00><05>j<00><04><04>fd<02>}<03>jjj<00>_ <00>jjj<00>_ |<03>_<00>S)N<>modulec<01><><00><02><00>jjj<00>d<01>jj_<00><00>yr<>)r<>r<>r<>r<>)<02>_disposer;s<00><>r!rcz$reconnecting_engine.<locals>.disposes0<00><><00><0E><0E><0E><1C><1C>%<25>%<25>'<27>*/<2F><06><0E><0E><1C><1C>'<27><10>
r#) rrlr]r<>r<>r<><00>testing_enginercr<><00> test_shutdownr<6E><00> test_restart)r]<00>optionsr<73>rcr<>r;s @@r!<00>reconnecting_enginer<65>
s<><00><><00>
<0A>
<1E><16><19><19><1D><1D>C<EFBFBD> <12>I<EFBFBD>I<EFBFBD> <1D> <1D> #<23> #<23>E<EFBFBD> <12><14><07>(<28><15>/<2F>G<EFBFBD>H<EFBFBD><15> <1B>C<EFBFBD><17> )<29>F<EFBFBD><15>~<7E>~<7E>H<EFBFBD><13>
"<22>><3E>><3E>/<2F>/<2F>8<>8<>F<EFBFBD><18> <20>.<2E>.<2E>.<2E>.<2E>6<>6<>F<EFBFBD><17><1C>F<EFBFBD>N<EFBFBD> <11>Mr#c<01><00>yrr<><00>r]r<><00>asyncio<69>transfer_staticpools r!r<>r<>s<00><00> r#c<01><00>yrr<>r<>s r!r<>r<>'s<00><00> r#c<01><><00>|r |rJ<00>ddlm}nddlm}ddlm}|sd}d} d}
n6|j dd<05>}|j d d<06>} |j d
d<07>}
|xstjj}||<00>}tj<00>1|jtjjjk(r/tjrtjj<00>} ni} |<01>| j|<01>||fi| <0B><01>} |
rG| jd k(r8tj | d <0C>d <0A><00>} tj | d<0E>d<0F><00>}|rpddlm}tj<00>{t'tjj(|<0F>rWd}| j(j+tjj(<00>n!|rtjj(| _| dk(r|rd| j,_nd| _t'| j(t(j0<00>r.d| vr*d| vr&d| vr"d| j(_d| j(_|rt6j9| | <09>| S)Nr)<01>create_async_engine)<01> create_engine)<01>make_urlTr9F<>
use_reaperr<<00>sqlite_savepoint<6E>sqlitermc<01><00>d|_yr)<01>isolation_level)rP<00>connection_records r!<00>
do_connectz"testing_engine.<locals>.do_connect\s <00><00>/3<> <1C> ,r#<00>beginc<01>&<00>|jd<01>y)N<>BEGIN)<01>exec_driver_sql)ros r!<00>do_beginz testing_engine.<locals>.do_begin`s<00><00> <10> <20> <20><17> )r#)<01>
StaticPoolr8r <00> pool_timeout<75> max_overflow)<1D>sqlalchemy.ext.asyncior<6F><00>
sqlalchemyr<EFBFBD><00>sqlalchemy.engine.urlr<6C><00>poprrlr]<00>
drivername<EFBFBD>db_opts<74>copy<70>updater<65>r <00> listens_for<6F>sqlalchemy.poolr<6C><00>
isinstancer <00>_transfer_fromr`<00> _has_events<74> QueuePool<6F>_timeout<75> _max_overflowr<77>r=)r]r<>r<>r<><00>
share_pool<EFBFBD>_sqlite_savepointr<74>r<>r<>r<r<><00> use_optionsr;r<>r<>r<>s r!r<>r<>0s<00><00><0F>$<24>$<24>$<24>
<EFBFBD> -<2D>.<2E> <12><19>
<EFBFBD><1A><05> <20><18><1C>[<5B>[<5B><1C>t<EFBFBD>4<>
<EFBFBD><17> <0B> <0B>G<EFBFBD>Z<EFBFBD>0<><05>"<22>;<3B>;<3B>'9<>5<EFBFBD>A<><18>
<0A>
<1E><16><19><19><1D><1D>C<EFBFBD>
<12>3<EFBFBD>-<2D>C<EFBFBD> <0F> <09> <09><19>S<EFBFBD>^<5E>^<5E>v<EFBFBD>y<EFBFBD>y<EFBFBD>}<7D>}<7D>/G<>/G<>G<>
<10>.<2E>.<2E><1C>n<EFBFBD>n<EFBFBD>)<29>)<29>+<2B> <0B><18> <0B><0E><1A><13><1A><1A>7<EFBFBD>#<23> <1A>3<EFBFBD> .<2E>+<2B> .<2E>F<EFBFBD><17>F<EFBFBD>K<EFBFBD>K<EFBFBD>8<EFBFBD>3<> <0E> <1A> <1A>6<EFBFBD>9<EFBFBD> -<2D> 4<>
.<2E> 4<>
<0F> <1A> <1A>6<EFBFBD>7<EFBFBD> +<2B> *<2A>
,<2C> *<2A><1B>.<2E> <11>9<EFBFBD>9<EFBFBD> <20>Z<EFBFBD><06> <09> <09><0E><0E>
<EFBFBD>%K<><1E>J<EFBFBD> <12>K<EFBFBD>K<EFBFBD> &<26> &<26>v<EFBFBD>y<EFBFBD>y<EFBFBD>~<7E>~<7E> 6<> <13><1C>i<EFBFBD>i<EFBFBD>n<EFBFBD>n<EFBFBD><06> <0B> <0C><08><18> <12>-1<>F<EFBFBD> <1E> <1E> *<2A><15> <13> <1E>
<13>6<EFBFBD>;<3B>;<3B><04><0E><0E>/<2F> <12>+<2B> %<25> <1A>+<2B> -<2D> <1A>+<2B> -<2D> <20><06> <0B> <0B><1C>$%<25><06> <0B> <0B>!<21><11><16>!<21>!<21>&<26>%<25>0<> <11>Mr#c<01><><00><05><06>ddlm}|stjj}g<00><05>fd<03>}<02>fd<04>}<03>fd<05>}||dz|<02><00>t <00>d<07>rJ<00><01><05>_|<03>_|<04>_<00>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.
r)<01>create_mock_enginec<01>(<00><01><00>j|<00>yr)r<>)<04>sql<71>ar<61><00>buffers <20>r!<00>executorzmock_engine.<locals>.executor<6F>s<00><><00><0E> <0A> <0A>c<EFBFBD>r#c
<01><><00><01><00>D<00>cgc]"}tjddt|<01><00><00><02>$}}||k(sJ|<02><00>ycc}w)Nz[\n\t]r[)<03>re<72>sub<75>str)<04>stmts<74>s<>recvr<76>s <20>r!<00>
assert_sqlzmock_engine.<locals>.assert_sql<71>s><00><><00>7=<3D>><3E>v<EFBFBD>!<21><02><06><06>y<EFBFBD>"<22>c<EFBFBD>!<21>f<EFBFBD>-<2D>v<EFBFBD><04>><3E><13>u<EFBFBD>}<7D>"<22>d<EFBFBD>"<22>}<7D><>?s<00>'<c<01>f<00><01><00><00>j<00>dj<00>fd<02><08>jD<00><00>S)N<>
c3<01>T<00>K<00>|]}t|j<00><02><00><00><00><01><00>!y<01>w))r<>N)r<><00>compile)<03>.0r<EFBFBD>r<>s <20>r!<00> <genexpr>z1mock_engine.<locals>.print_sql.<locals>.<genexpr><3E>s"<00><><00><><00>H<>K<EFBFBD>q<EFBFBD><13>Q<EFBFBD>Y<EFBFBD>Y<EFBFBD>q<EFBFBD>Y<EFBFBD>1<>2<>K<EFBFBD>s<00>%()r<><00>join<69>mock)r<>r;s@<40>r!<00> print_sqlzmock_engine.<locals>.print_sql<71>s%<00><><00> <12>N<EFBFBD>N<EFBFBD><01><13>y<EFBFBD>y<EFBFBD>H<>F<EFBFBD>K<EFBFBD>K<EFBFBD>H<>H<>Hr#z://r<>) r<>r<>rrlr<>rbr<>r<>r<>)<07> dialect_namer<65>r<>r<>r<>r<>r;s @@r!<00> mock_enginer<00>sl<00><><00>.<2E> <17><1D>y<EFBFBD>y<EFBFBD>~<7E>~<7E> <0C> <0F>F<EFBFBD><1B>#<23>I<01> <20> <0C>u<EFBFBD> 4<>h<EFBFBD> ?<3F>F<EFBFBD><16>v<EFBFBD>v<EFBFBD>&<26>&<26> &<26><18>F<EFBFBD>K<EFBFBD>"<22>F<EFBFBD><15> <20>F<EFBFBD><14> <11>Mr#c<01>0<00>eZdZdZd<02>Zdd<04>Zd<05>Zd<06>Zd<07>Zy) <09>DBAPIProxyCursorzuProxy a DBAPI cursor.
Tests can provide subclasses of this to intercept
DBAPI-level cursor operations.
c<01>N<00>||_||_|j|i|<04><01>|_yr)r;r^r<>)r r;ror<>r<>s r!r"zDBAPIProxyCursor.__init__<5F>s'<00><00><1C><04> <0B><1E><04><0F>!<21>d<EFBFBD>k<EFBFBD>k<EFBFBD>4<EFBFBD>2<>6<EFBFBD>2<><04> r#Nc <01>|<00>|r|jj||fi|<03><01>S|jj|fi|<03><01>Sr)r<>r<>)r <00>stmt<6D>
parametersr<EFBFBD>s r!r<>zDBAPIProxyCursor.execute<74>s?<00><00> <15>&<26>4<EFBFBD>;<3B>;<3B>&<26>&<26>t<EFBFBD>Z<EFBFBD>><3E>2<EFBFBD>><3E> ><3E>&<26>4<EFBFBD>;<3B>;<3B>&<26>&<26>t<EFBFBD>2<>r<EFBFBD>2<> 2r#c <01>><00>|jj||fi|<03><01>Sr)r<><00> executemany)r r<00>paramsr<73>s r!rzDBAPIProxyCursor.executemany<6E>s <00><00>&<26>t<EFBFBD>{<7B>{<7B>&<26>&<26>t<EFBFBD>V<EFBFBD>:<3A>r<EFBFBD>:<3A>:r#c<01>,<00>t|j<00>Sr)<02>iterr<72>rs r!<00>__iter__zDBAPIProxyCursor.__iter__<5F>s<00><00><13>D<EFBFBD>K<EFBFBD>K<EFBFBD> <20> r#c<01>.<00>t|j|<01>Sr)r<>r<>r<>s r!r<>zDBAPIProxyCursor.__getattr__<5F>s<00><00><16>t<EFBFBD>{<7B>{<7B>C<EFBFBD>(<28>(r#r) r}r~r<00>__doc__r"r<>rr r<>r<>r#r!rr<00>s <00><00><08>3<>
3<> ;<3B>!<21>)r#rc<01>(<00>eZdZdZd<02>Zd<03>Zd<04>Zd<05>Zy)<07>DBAPIProxyConnectionz}Proxy a DBAPI connection.
Tests can provide subclasses of this to intercept
DBAPI-level connection operations.
c<01>.<00>||_||_||_yr)ror;<00>
cursor_cls)r r;rors r!r"zDBAPIProxyConnection.__init__<5F>s<00><00><18><04> <09><1C><04> <0B>$<24><04>r#c<01>X<00>|j|j|jg|<01><01>i|<02><01>Sr)rr;ro)r r<>r<>s r!r<>zDBAPIProxyConnection.cursor<6F>s'<00><00><1E>t<EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>{<7B>{<7B>D<EFBFBD>I<EFBFBD>I<EFBFBD>G<><04>G<><06>G<>Gr#c<01>8<00>|jj<00>yr)ror'rs r!r'zDBAPIProxyConnection.close<73>s<00><00> <0C> <09> <09><0F><0F>r#c<01>.<00>t|j|<01>Sr)r<>ror<>s r!r<>z DBAPIProxyConnection.__getattr__<5F>s<00><00><16>t<EFBFBD>y<EFBFBD>y<EFBFBD>#<23>&<26>&r#N)r}r~rrr"r<>r'r<>r<>r#r!rr<00>s<00><00><08>%<25>
H<01><1A>'r#rr)NN)NNFF)
r]<00> Optional[URL]r<><00>Optional[Dict[str, Any]]r<>zLiteral[False]r<><00>bool<6F>returnr)NNTF)
r]rr<>rr<>z Literal[True]r<>rrr)NNFFFF))<29>
__future__rrr<><00>typingrrrrArr[r<00>utilr r
r r r<00> util.typingr<00> TYPE_CHECKINGr;r<00>
engine.urlr<00> ext.asynciorrr<>r<>r<>r<>r<>r<>r<>r<><00>overloadr<64>rrrr<>r#r!<00><module>r"s<><00><01>#<23><12> <09> <0A><16><17><1B><0F><0E><14><1B><1C><14><13><1D>!<21>
<EFBFBD><17><17><1F> <20>)<29>C<1D>C<1D>L"<22>#<23><0E> <0B>+<2B> <0B>+<2B> <0B>&<26> <0B>&<26> <0B><14> <0B><14> <0B>%<25> <0B>%<25> <1C>( <20>( <20>V<12>(<08><1F><1F><1D>(,<2C>#<23> %<25> <11> <16><11> %<25><11><1C><11><1E> <11>
 <0C> <11><11><11><08><1F><1F><1D>(,<2C>!<21> %<25> <16> <16><16> %<25><16><1B><16><1E> <16>
<11> <16><11><16> <0A> <10> <11><1D><14><1B> P<12>f#<12>L)<29>)<29>:'<27>'r#