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

92 lines
20 KiB
Plaintext
Raw Normal View History

2025-02-23 09:07:52 +08:00
<EFBFBD>
AI<41>g<EFBFBD>C<00> <01><><00>ddlmZddlZddlZddlZddlZddlmZddlm Z ddl
m Z ddl m Z Gd<08>d <09>ZGd
<EFBFBD>d e<0E>ZGd <0C>d e<0F>ZGd<0E>de<0F>ZGd<10>de<11>ZGd<12>de<11>ZGd<14>de<0E>ZGd<16>de<0E>ZGd<18>de<0E>ZGd<1A>de<16>ZGd<1C>de<15>ZGd<1E>d<1F>ZGd <20>d!ej4d!gd"<22><01><00>ZGd#<23>d$<24>Zej:d%<25><00>Zy)&<26>)<01> annotationsN<73>)<01>event)<01>url)<01>DefaultDialect)<01>BaseDDLElementc<01>$<00>eZdZdZdZdZd<04>Zd<05>Zy)<06>
AssertRuleFNTc<01><00>y<00>N<><00><02>self<6C>execute_observeds <20>FD:\wxxcx\tsccc\.venv\Lib\site-packages\sqlalchemy/testing/assertsql.py<70>process_statementzAssertRule.process_statements<00><00> <0C>c<01><00>Jd<01><00>)Nz?All statements are complete, but pending assertion rules remainr <00>rs r<00>no_more_statementszAssertRule.no_more_statementss<00><00>
<EFBFBD> %<25>
<EFBFBD>ur)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F> is_consumed<65> errormessage<67>consume_statementrrr rrr
r
s<00><00><17>K<EFBFBD><17>L<EFBFBD><1C><15> <0A>
rr
c<01> <00>eZdZy)<02> SQLMatchRuleN<65>rrrr rrrr&s<00><00>rrc<01><00>eZdZdd<02>Zd<03>Zy)<05> CursorSQLNc<01>.<00>||_||_||_yr )<03> statement<6E>paramsr)rr#r$rs r<00>__init__zCursorSQL.__init__+s<00><00>"<22><04><0E><1C><04> <0B>!2<><04>rc<01><><00>|jd}|j|jk7s%|j<00>\|j|jk7rCd|_d|j<00>d|j<00>d|j<00>d|j<00><01>|_y|jj d<01>d|_|jsd|_yy)NrTzTesting for exact SQL z parameters z
received <20> )<08>
statementsr#r$<00>
parametersrr<00>popr)rr<00>stmts rrzCursorSQL.process_statement0s<><00><00><1F>*<2A>*<2A>1<EFBFBD>-<2D><04> <0F>><3E>><3E>T<EFBFBD>^<5E>^<5E> +<2B> <10>K<EFBFBD>K<EFBFBD> #<23><04> <0B> <0B>t<EFBFBD><EFBFBD><EFBFBD>(F<>%)<29>D<EFBFBD> "<22><19>N<EFBFBD>N<EFBFBD><18>K<EFBFBD>K<EFBFBD><18>N<EFBFBD>N<EFBFBD><18>O<EFBFBD>O<EFBFBD> <12> <11> <1D> <1D> '<27> '<27> +<2B> +<2B>A<EFBFBD> .<2E>#<23>D<EFBFBD> <1C>#<23>.<2E>.<2E>)-<2D><04>&<26>/r)NT<4E>rrrr%rr rrr!r!*s <00><00>3<>
.rr!c<01>:<00>eZdZ d d<02>Zd<03>Zd<04>Zd<05>Zd<06>Zd<07>Zd<08>Z y)
<EFBFBD> CompiledSQLNc<01><<00>||_||_||_||_yr )r#r$<00>dialect<63>enable_returning)rr#r$r0r1s rr%zCompiledSQL.__init__Gs!<00><00>#<23><04><0E><1C><04> <0B><1E><04> <0C> 0<><04>rc<01>N<00>tjdd|j<00>}||k(S<00>N<>[\n\t]<5D>)<03>re<72>subr#<00>rr<00>received_statementr+s r<00> _compare_sqlzCompiledSQL._compare_sqlOs#<00><00><11>v<EFBFBD>v<EFBFBD>i<EFBFBD><12>T<EFBFBD>^<5E>^<5E>4<><04>!<21>T<EFBFBD>)<29>)rc<01>R<00>|jdk(r^t<00>}d|_|jr?dx|_x|_|_d|_d|_d|_ d|_
|jsJ<00>|Stjj|j<00>j<00><00>S<00>N<>defaultT)r0r<00>supports_default_metavaluer1<00>insert_returning<6E>update_returning<6E>delete_returning<6E>use_insertmanyvalues<65>supports_multivalues_insert<72>update_returning_multifrom<6F>delete_returning_multifrom<6F>insert_executemany_returningr<00>URL<52>create<74> get_dialect)rrr0s r<00>_compile_dialectzCompiledSQL._compile_dialectSs<><00><00> <0F><<3C><<3C>9<EFBFBD> $<24>$<24>&<26>G<EFBFBD>26<32>G<EFBFBD> .<2E><13>$<24>$<24><19><19><07>(<28><19>7<EFBFBD>+C<><1B>,<2C>/3<><07>,<2C>6:<3A><07>3<>59<35><07>2<>59<35><07>2<> <1F>;<3B>;<3B>;<3B>;<3B><1A>N<EFBFBD><16>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>,<2C>,<2C>/<2F>;<3B>;<3B>=<3D>?<3F> ?rc<01>`<00>|j}|j|<01>}d}d}d|jvr|jd}nd}t|jt
<00>r|jj ||<06><03>}nH|jj |||jj|jj|<06><04>}tjddt|<07><00>}|j} | s|j|<05><07>g}
||
fS| D<00> cgc]} |j| |<05><07><00><02>}
} ||
fScc} w)zxreconstruct the statement and params in terms
of a target dialect, which for CompiledSQL is just DefaultDialect.N<>schema_translate_map)r0rL)<05> cache_keyr0<00> column_keys<79>for_executemanyrLr4r5)<01>extracted_parameters)<0F>contextrJ<00>execution_options<6E>
isinstance<EFBFBD> clauseelementr<00>compile<6C>compiledrNrOr6r7<00>strr)<00>construct_params) rrrQ<00>compare_dialectrMrP<00>map_rV<00>_received_statementr)<00>_received_parameters<72>ms rr[zCompiledSQL._received_statementmsm<00><00>#<23>*<2A>*<2A><07><1E>/<2F>/<2F>0@<40>A<><0F> <19> <09> <10> <1D> "<22>W<EFBFBD>%><3E>%><3E> ><3E><1A>,<2C>,<2C>-C<>D<>D<EFBFBD><17>D<EFBFBD> <15>&<26>4<>4<>n<EFBFBD> E<>'<27>5<>5<>=<3D>=<3D>'<27>%)<29>><3E><0E>H<EFBFBD>
(<28>5<>5<>=<3D>=<3D>#<23>'<27>#<23>,<2C>,<2C>8<>8<> '<27> 0<> 0<> @<40> @<40>%)<29> ><3E><0E>H<EFBFBD>!<21>f<EFBFBD>f<EFBFBD>Y<EFBFBD><02>C<EFBFBD><08>M<EFBFBD>B<><1B>%<25>0<>0<>
<EFBFBD><19><18>)<29>)<29>)=<3D>*<2A><12>$<0E> <20>#<23>$8<>8<>8<>$<24> $<0E>$<24>A<EFBFBD><19>)<29>)<29><15>,@<40>*<2A><12>$<24> !<21>$<0E>#<23>$8<>8<>8<><38>$s<00> D+c<01><><00>|j}|j|<01>\}}|j|<02>}|j||<03>}|r||<05>zt |<05>}t |<04>}|r\|rZt |j d<01><00>} tt |<08><00>D]!\}
} | D]} | | vs | | | | k7s<01><00>||
=nd}n|r|r<01>Z|s|rd}|rd|_d|_ y|j||<05>||d<04>z|_ y)NrFT)r9<00>received_parameters) rQr[<00> _all_paramsr:<00>list<73>dictr*<00> enumeraterr<00>_failure_message) rrrQr[r\r$<00>
equivalent<EFBFBD>
all_params<EFBFBD> all_received<65>param<61>idx<64>received<65> param_keys rrzCompiledSQL.process_statement<6E>s+<00><00>"<22>*<2A>*<2A><07>48<34>4L<34>4L<34> <1C>5
<EFBFBD>1<><1B>1<><16>!<21>!<21>'<27>*<2A><06><19>&<26>&<26>'7<>9L<39>M<>
<EFBFBD> <15><15>!<21>!<21>&<26>\<5C>
<EFBFBD>#<23>$8<>9<> <0C> <20>\<5C> <20><1A><1E><1E><01>!2<>3<>E<EFBFBD>)2<>4<EFBFBD> <0C>3E<33>)F<> <0A><03>X<EFBFBD>).<2E>I<EFBFBD>!*<2A><18> 9<>#+<2B>I<EFBFBD>#6<>%<25> <09>:J<>#J<> %<25>*/<2F>!-<2D>S<EFBFBD> 1<>!<21>*G<01>$&+<2B>
<EFBFBD><1D>-!<21>\<5C>.<1E><1C>!&<26>J<EFBFBD> <15>#<23>D<EFBFBD> <1C> $<24>D<EFBFBD> <1D> $<24> 5<> 5<> <20>&<26>!<0E>':<3A>';<3B><0E>!<0E>D<EFBFBD> rc<01><><00>|jrHt|j<00>r|j|<01>}n |j}t|t<00>s|g}|Syr )r$<00>callablerSra)rrQr$s rr`zCompiledSQL._all_params<6D>sE<00><00> <0F>;<3B>;<3B><17><04> <0B> <0B>$<24><1D><1B><1B>W<EFBFBD>-<2D><06><1D><1B><1B><06><1D>f<EFBFBD>d<EFBFBD>+<2B> <20><18><06><19>M<EFBFBD>rc<01>z<00>d|jjdd<03><00>dt|<02>jdd<03><00>d<05>S<00>NzTesting for compiled statement
<EFBFBD>%<25>%%<25> partial params zE, received
%(received_statement)r with params %(received_parameters)r)r#<00>replace<63>repr<70>rr<00>expected_paramss rrdzCompiledSQL._failure_message<67>s7<00><00> <15><0E><0E>&<26>&<26>s<EFBFBD>D<EFBFBD>1<><14>_<EFBFBD>%<25>-<2D>-<2D>c<EFBFBD>4<EFBFBD>8<>  <0E>
rr<)
rrrr%r:rJr[rr`rdr rrr.r.Fs+<00><00>JN<4A>1<>*<2A>@<01>439<>j1<0E>f
<18> 
rr.c<01>"<00>eZdZ dd<02>Zd<03>Zd<04>Zy)<06>RegexSQLNc<01><><00>tj|<00>tj|<01>|_||_||_||_||_yr ) rr%r6rU<00>regex<65>
orig_regexr$r0r1)rrzr$r0r1s rr%zRegexSQL.__init__<5F>s?<00><00> <15><1D><1D>d<EFBFBD>#<23><17>Z<EFBFBD>Z<EFBFBD><05>&<26><04>
<EFBFBD><1F><04><0F><1C><04> <0B><1E><04> <0C> 0<><04>rc<01>z<00>d|jjdd<03><00>dt|<02>jdd<03><00>d<05>S)Nz Testing for compiled statement ~rprqrrzE, received %(received_statement)r with params %(received_parameters)r)r{rsrtrus rrdzRegexSQL._failure_message<67>s7<00><00> <15><0F><0F>'<27>'<27><03>T<EFBFBD>2<><14>_<EFBFBD>%<25>-<2D>-<2D>c<EFBFBD>4<EFBFBD>8<>  <0E>
rc<01>J<00>t|jj|<02><00>Sr )<03>boolrz<00>match)rrr9s rr:zRegexSQL._compare_sqls<00><00><13>D<EFBFBD>J<EFBFBD>J<EFBFBD>$<24>$<24>%7<>8<>9<>9r)Nr=F)rrrr%rdr:r rrrxrx<00>s<00><00>FK<46>1<> 
<EFBFBD>:rrxc<01><<00><00>eZdZd<01>Zd<02>Z<04>fd<03>Zd<04>Zd<05>Zd<06>Z<08>xZ S)<07>
DialectSQLc<01>.<00>|jjSr )rQr0rs rrJzDialectSQL._compile_dialects<00><00><1F>'<27>'<27>/<2F>/<2F>/rc<01>:<00>tjdd|<01>}||k(Sr3)r6r7)r<00> real_stmt<6D> received_stmtr+s r<00>_compare_no_spacezDialectSQL._compare_no_space s<00><00><11>v<EFBFBD>v<EFBFBD>i<EFBFBD><12>Y<EFBFBD>/<2F><04><1C><04>$<24>$rc<01><><00><01>t<00>|<00>|<01>\}}|jD] }|j|j|<02>s<01> nt d|z<00><00>||j jfS)NzICan't locate compiled statement %r in list of statements actually invoked)<08>superr[r(r<>r#<00>AssertionErrorrQ<00>compiled_parameters)rrr<><00>received_paramsr<73><00> __class__s <20>rr[zDialectSQL._received_statements{<00><><00>).<2E><17>)D<> <1C>*
<EFBFBD>&<26> <0A><EFBFBD>
*<2A>4<>4<>I<EFBFBD><13>%<25>%<25>i<EFBFBD>&9<>&9<>=<3D>I<><15>5<>!<21>.<2E>0=<3D>><3E><0E> <0E>
<1D>.<2E>6<>6<>J<>J<>J<>Jrc<01><><00><05><06>|j}tjdd|j<00>}|j dd<04>}|dk(rtjdd|<03>}n^d}|dk(rd }n=|d
k(rd }n5|j d <0C>r$t jd <0A><00>|dk(rdnd<10><06><05>fd<11>}tjd||<03>}|j dd<03>}|S)Nr4r5z::z!!<21>pyformatz :([\w_]+)z%(\1)s<>qmark<72>?<3F>formatz%s<>numeric<69><00>numeric_dollar<61>$<24>:c<01>"<00><02><00><02>t<00><01><00><00>Sr )<01>next)r]<00>counter<65>num_identifiers <20><>r<00>replz4DialectSQL._dialect_adjusted_statement.<locals>.repl5s<00><><00>,<2C>-<2D>d<EFBFBD>7<EFBFBD>m<EFBFBD>_<EFBFBD>=<3D>=r)<08>
paramstyler6r7r#rs<00>
startswith<EFBFBD> itertools<6C>count)rr0r<>r+r<>r<>r<>s @@r<00>_dialect_adjusted_statementz&DialectSQL._dialect_adjusted_statement s<><00><><00><1C>'<27>'<27>
<EFBFBD><11>v<EFBFBD>v<EFBFBD>i<EFBFBD><12>T<EFBFBD>^<5E>^<5E>4<><04><14>|<7C>|<7C>D<EFBFBD>$<24>'<27><04> <15><1A> #<23><15>6<EFBFBD>6<EFBFBD>,<2C> <09>4<EFBFBD>8<>D<EFBFBD><18>D<EFBFBD><19>W<EFBFBD>$<24><1A><04><1B>x<EFBFBD>'<27><1C><04><1B>&<26>&<26>y<EFBFBD>1<>#<23>/<2F>/<2F>!<21>,<2C><07>(2<>6F<36>(F<><13>C<EFBFBD><0E>><3E><16>6<EFBFBD>6<EFBFBD>,<2C><04>d<EFBFBD>3<>D<EFBFBD><14>|<7C>|<7C>D<EFBFBD>$<24>'<27><04><13> rc<01>V<00>|j|jj<00>}||k(Sr )r<>rQr0r8s rr:zDialectSQL._compare_sql?s.<00><00><13>/<2F>/<2F> <1C> $<24> $<24> ,<2C> ,<2C>
<EFBFBD><04>"<22>T<EFBFBD>)<29>)rc<01><><00>d|j|jj<00>jdd<03><00>dt |<02>jdd<03><00>d<05>Sro)r<>rQr0rsrtrus rrdzDialectSQL._failure_messageEsS<00><00> <15>0<>0<>$<24>,<2C>,<2C>4<>4<><12><19>'<27>#<23>t<EFBFBD>$<24>%<25><15>_<EFBFBD>%<25>-<2D>-<2D>c<EFBFBD>4<EFBFBD>8<> <0E>
r)
rrrrJr<>r[r<>r:rd<00> __classcell__<5F>r<>s@rr<>r<>s"<00><><00>0<>%<25>K<01>"<14>>*<2A> 
rr<>c<01><00>eZdZd<01>Zd<02>Zd<03>Zy)<05>CountStatementsc<01> <00>||_d|_y<00>Nr<00>r<><00>_statement_count)rr<>s rr%zCountStatements.__init__Ts<00><00><1A><04>
<EFBFBD> !<21><04>rc<01>.<00>|xjdz c_y)Nr<4E>)r<>rs rrz!CountStatements.process_statementXs<00><00> <0C><1D><1D><11>"<22>rc<01>v<00>|j|jk7r Jd|j|jfz<00><00>y)Nz,desired statement count %d does not match %dr<64>rs rrz"CountStatements.no_more_statements[sC<00><00> <0F>:<3A>:<3A><14>.<2E>.<2E> .<2E> <0E>H<><14>
<EFBFBD>
<EFBFBD><14>%<25>%<25>L<0E><0E> <0E>5<EFBFBD> /rN)rrrr%rrr rrr<>r<>Ss<00><00>"<22>#<23>rr<>c<01><00>eZdZd<01>Zd<02>Zy)<04>AllOfc<01>$<00>t|<01>|_yr )<02>set<65>rules<65>rr<>s rr%zAllOf.__init__ds <00><00><18><15>Z<EFBFBD><04>
rc<01>X<00>t|j<00>D]k}d|_|j|<01>|jr0|jj |<02>|jsd|_y|jr<01>dd|_yt|j<00>dj|_y<00>NTr)rar<>rrr<00>discard<72>rr<00>rules rrzAllOf.process_statementgs<><00><00><18><14><1A><1A>$<24>D<EFBFBD> $<24>D<EFBFBD> <1D> <10> "<22> "<22>#3<> 4<><13><1F><1F><14>
<EFBFBD>
<EFBFBD>"<22>"<22>4<EFBFBD>(<28><1B>z<EFBFBD>z<EFBFBD>'+<2B>D<EFBFBD>$<24><15><19>&<26>&<26>$(<28><04>!<21><15>%<25>!%<25>T<EFBFBD>Z<EFBFBD>Z<EFBFBD> 0<><11> 3<> @<40> @<40>D<EFBFBD> rNr,r rrr<>r<>cs <00><00> <20>Arr<>c<01>*<00><00>eZdZd<01>Zd<02>Z<04>fd<03>Z<05>xZS)<04>EachOfc<01>$<00>t|<01>|_yr )rar<>r<>s rr%zEachOf.__init__ys <00><00><19>%<25>[<5B><04>
rc<01>v<00>|jsd|_d|_|jr|jd}|j|<01>|jr|jj d<03>n|j
r|j
|_|jrn |jr<01>|jsd|_yy)NTFr)r<>rrrr*rr<>s rrzEachOf.process_statement|s<><00><00><13>z<EFBFBD>z<EFBFBD>#<23>D<EFBFBD> <1C>%*<2A>D<EFBFBD> "<22><12>j<EFBFBD>j<EFBFBD><17>:<3A>:<3A>a<EFBFBD>=<3D>D<EFBFBD> <10> "<22> "<22>#3<> 4<><13><1F><1F><14>
<EFBFBD>
<EFBFBD><0E><0E>q<EFBFBD>!<21><15>"<22>"<22>$(<28>$5<>$5<><04>!<21><13>%<25>%<25><15><13>j<EFBFBD>j<EFBFBD><14>z<EFBFBD>z<EFBFBD>#<23>D<EFBFBD> <1C>rc<01><><00><01>|jr7|jdjs|jdj<00>y|jrt<00>|<00> <00>yyr<>)r<>rrr<>)rr<>s <20>rrzEachOf.no_more_statements<74>sE<00><><00> <0F>:<3A>:<3A>d<EFBFBD>j<EFBFBD>j<EFBFBD><11>m<EFBFBD>7<>7<> <10>J<EFBFBD>J<EFBFBD>q<EFBFBD>M<EFBFBD> ,<2C> ,<2C> .<2E> <11>Z<EFBFBD>Z<EFBFBD> <11>G<EFBFBD> &<26> (<28>r)rrrr%rrr<>r<>s@rr<>r<>xs<00><><00>!<21>$<24>$)<29>)rr<>c<01><00><00>eZdZ<02>fd<01>Z<03>xZS)<02> Conditionalc<01><<00><01>|r t<00>|<00>|<02>yt<00>|<00>|<03>yr )r<>r%)r<00> conditionr<6E><00>
else_rulesr<EFBFBD>s <20>rr%zConditional.__init__<5F>s <00><><00> <14> <11>G<EFBFBD> <1C>e<EFBFBD> $<24> <11>G<EFBFBD> <1C>j<EFBFBD> )r)rrrr%r<>r<>s@rr<>r<><00>s <00><><00>*<2A>*rr<>c<01><00>eZdZd<01>Zy)<03>Orc<01><><00>|jD](}|j|<01>|js<01>!d|_yt|j<00>dj|_yr<>)r<>rrrarr<>s rrzOr.process_statement<6E>sQ<00><00><18>J<EFBFBD>J<EFBFBD>D<EFBFBD> <10> "<22> "<22>#3<> 4<><13><1F><1F>#'<27><04> <20><15> <1F> !%<25>T<EFBFBD>Z<EFBFBD>Z<EFBFBD> 0<><11> 3<> @<40> @<40>D<EFBFBD> rN)rrrrr rrr<>r<><00>s<00><00>Arr<>c<01><00>eZdZd<01>Zd<02>Zy)<04>SQLExecuteObservedc<01><><00>||_||_|r||_g|_y|r|g|_g|_yg|_g|_yr )rQrTr)r()rrQrT<00> multiparamsr$s rr%zSQLExecuteObserved.__init__<5F>sK<00><00><1E><04> <0C>*<2A><04><1A> <16>)<29>D<EFBFBD>O<EFBFBD>
<1D><04><0F> <14>%<25>h<EFBFBD>D<EFBFBD>O<EFBFBD><1D><04><0F>!<21>D<EFBFBD>O<EFBFBD><1C><04>rc<01>,<00>t|j<00>Sr )rWr(rs r<00>__repr__zSQLExecuteObserved.__repr__<5F>s<00><00><12>4<EFBFBD>?<3F>?<3F>#<23>#rN)rrrr%r<>r rrr<>r<><00>s <00><00>
<1D>$rr<>c<01> <00>eZdZy)<02>SQLCursorExecuteObservedNrr rrr<>r<><00>s<00><00>  rr<>)r#r)rQ<00> executemanyc<01><00>eZdZd<01>Zd<02>Zd<03>Zy)<05> SQLAsserterc<01><00>g|_yr )<01> accumulatedrs rr%zSQLAsserter.__init__<5F>s
<00><00><1D><04>rc<01>*<00>|j|_|`yr )r<><00>_finalrs r<00>_closezSQLAsserter._close<73>s<00><00><1A>&<26>&<26><04> <0B> <10> rc<01>2<00>t|<01>}t|j<00>}|rO|jd<01>}|j |<04>|j
rn |j rJ|j <00><00>|r<01>O|r
Jd|z<00><00>|j
s|j<00>yy)Nrz$Additional SQL statements remain:
%s)r<>rar<>r*rrrr)rr<>r<><00>observedr#s r<00>assert_zSQLAsserter.assert_<74>s<><00><00><15>u<EFBFBD>~<7E><04><17><04> <0B> <0B>$<24><08><16> <20> <0C> <0C>Q<EFBFBD><0F>I<EFBFBD> <10> "<22> "<22>9<EFBFBD> -<2D><13><1F><1F><15><15>"<22>"<22>/<2F>d<EFBFBD>/<2F>/<2F>/<2F>u<EFBFBD> <17> <14> L<>A<>H<EFBFBD>L<> L<>5<EFBFBD><15>!<21>!<21> <10> #<23> #<23> %<25>"rN)rrrr%r<>r<>r rrr<>r<><00>s<00><00><1E><1D>&rr<>c#<01><><00><03>K<00>t<00><00>g<00>tj|d<01><00>fd<02><08>}tj|d<03><00><03>fd<04><08>} <00><03><02>tj|d|<02>tj|d|<01><00>j <00>y#tj|d|<02>tj|d|<01><00>j <00>wxYw<01>w)N<>before_executec<01><00><01>|||f<03>ddyr r )<06>connrTr<>r$rR<00>origs <20>r<00>connection_executez)assert_engine.<locals>.connection_execute<74>s<00><><00>  <20><1B>f<EFBFBD>4<><04>Q<EFBFBD>r<00>after_cursor_executec<01>,<00><02>|sy<00>jr+<2B>jdj|ur<10>jd}n2t|<04>d<00>d<00>d<00>}<06>jj|<06>|jjt ||||<05><00>y)N<><4E><EFBFBD><EFBFBD><EFBFBD>rr<>r)r<>rQr<><00>appendr(r<>) r<><00>cursorr#r)rQr<><00>obs<62>asserterr<72>s <20><>r<00>cursor_executez%assert_engine.<locals>.cursor_execute<74>s<><00><><00><17> <12> <15> <20> <20><18>$<24>$<24>R<EFBFBD>(<28>0<>0<>G<EFBFBD>;<3B><1A>&<26>&<26>r<EFBFBD>*<2A>C<EFBFBD>$<24>W<EFBFBD>d<EFBFBD>1<EFBFBD>g<EFBFBD>t<EFBFBD>A<EFBFBD>w<EFBFBD><04>Q<EFBFBD><07>H<>C<EFBFBD> <14> <20> <20> '<27> '<27><03> ,<2C> <0B><0E><0E><1D><1D> $<24><19>:<3A>w<EFBFBD> <0B> <0E>
r)r<>r<00> listens_for<6F>remover<65>)<05>enginer<65>r<>r<>r<>s @@r<00> assert_enginer<65><00>s<><00><><00><><00><1A>}<7D>H<EFBFBD> <0A>D<EFBFBD>
<EFBFBD><16><16>v<EFBFBD>/<2F>0<>5<>1<>5<> <0B><16><16>v<EFBFBD>5<>6<>
<EFBFBD>7<>
<EFBFBD>*<1A><16><0E> <0A> <0C> <0C>V<EFBFBD>3<>^<5E>D<> <0A> <0C> <0C>V<EFBFBD>-<2D>/A<>B<><10><0F><0F><19><> <0E> <0C> <0C>V<EFBFBD>3<>^<5E>D<> <0A> <0C> <0C>V<EFBFBD>-<2D>/A<>B<><10><0F><0F><19>s<00>A
C<01>B<00>?C<01>AC<03>C)<1F>
__future__r<00> collections<6E>
contextlibr<EFBFBD>r6r5rr<>r<00>engine.defaultr<00>schemarr
rr!r.rxr<>r<>r<>r<>r<>r<>r<><00>
namedtupler<EFBFBD>r<><00>contextmanagerr<72>r rr<00><module>r<>s<><00><01>#<23><12><11><10> <09><14><18>+<2B>#<23> 
<EFBFBD> 
<EFBFBD> <09>:<3A> <09>.<2E> <0C>.<2E>8d
<EFBFBD>,<2C>d
<EFBFBD>N:<3A>{<7B>:<3A>4I
<EFBFBD><1B>I
<EFBFBD>X <0E>j<EFBFBD> <0E> A<01>J<EFBFBD>A<01>*)<29>Z<EFBFBD>)<29>:*<2A>&<26>*<2A>A<01><15>A<01>$<24>$<24>" <09><1A>K<EFBFBD><1A><1A>"<22>=<3D><06> <09>&<26>&<26>2 <0C><1A><1A>(<1A><1B>(r