L i0|ddlZddlZddlZddlZddlmZddlmZddlmZddlm Z d'dZ d'd Z Gd d Z d'd Z d'd ZGddZGddeZGddeZGddeZGddeZGddeZej*ZdZdZdZdZd(dZd'dZd Zd'd!Zd"Zd'd#Z d'd$Z!d'd%Z"d&Z#y))N)config)util) decorator)inspect_getfullargspeccht}t||}|jj||SN)compound _as_predicateskipsadd predicatereasonrulepreds c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/testing/exclusions.pyskip_ifr* :D F +DJJNN4 Kcht}t||}|jj||Sr )r r failsrrs rfails_ifrrrceZdZdZdZdZdZdZedZ dZ dZ d Z d Z ejd Zd Zdd ZddZy)r c@t|_t|_yr )setrr selfs r__init__zcompound.__init__#sU U rc$|j|Sr )rrothers r__add__zcompound.__add__'sxxrct}|jj|j|jj|j|Sr )r r updater)rrs ras_skipszcompound.as_skips*s:z $**% $**% rcPt}|jj|j|jj|j|D]L}|jj|j|jj|jN|Sr r rr&r )rotherscopyr#s rrz compound.add0swz $**% $**% +E JJ  ekk * JJ  ekk * + rct}|jjd|jD|jjd|jD|S)Nc32K|]}t|ywr  NotPredicate).0fails r z compound.not_..<D,t,Dc32K|]}t|ywr r.)r0skips rr2z compound.not_..=r3r4r))rr+s rnot_z compound.not_:sFz DDD DDD rc@|jtjSr )enabled_for_configr_currentrs renabledzcompound.enabled@s&&v77rcl|jj|jD] }||s yy)NFT)r unionrrrrs rr9zcompound.enabled_for_configDs4))$**5 I  rc|jj|jDcgc]}||r|j|c}Scc}wr )r r=r _as_stringr>s rmatching_config_reasonsz compound.matching_config_reasonsKsJ"ZZ--djj9     (   s A c|jj|j|jj|jyr )r r&rr"s r_extendzcompound._extendRs. %++& %++&rct|dr|jj|Stfd}||}|_|S)N_sa_exclusion_extendcNjtj|g|i|Sr )_dorr:)fnargskwrs rdecoratez#compound.__call__..decorate[s$488FOOR=$="= =r)hasattrrErCr)rrHrK decorateds` r__call__zcompound.__call__VsR 2- .  # # + +D 1I  >  >RL )- &rc#PKt}|jj|jj |j d|j t jy#t$r*}|jt j|Yd}~yd}~wwxYwwr ) r rr&r r=_expect_successrr: Exception_expect_failure)r all_failsexs rfail_ifzcompound.fail_ifcsvJ tzz// ;< 7   % %foo 6 ;  % %foor : : ;s0A B& A0 B&0 B#9 BB&B##B&cj|jD]I}||s dtjd|j|}tj|K ||i|}|j ||j |S#t$r(}|j|||j Yd}~yd}~wwxYw)N'z' : )name) r rget_current_test_namer@ skip_testrP__name__rQrR) rcfgrHrIrJr6msg return_valuerTs rrGz compound._doosJJ &DCy002OOC(  %  & t?r?L  2;; 7   <  br{{ ; ; }|s td|ddjfd|jDdy)NzUnexpected success for 'z' ( and c3@K|]}|jywr r@)r0r1rs rr2z+compound._expect_success..s%8=|==|!=|<=|<|>)\s*([\d\.]+))?z(Couldn't locate DB name in predicate: %rrrc32K|]}t|ywr )int)r0ds rr2z)Predicate.as_predicate..sAc!fAr4.) descriptionzunknown predicate type: %s) isinstancer as_predicater9ryrlistr OrPredicatetuple SpecPredicatestrrematch ValueErrorgroupsplitcallableLambdaPredicate)clsrrrtokensdbopspecs rrzPredicate.as_predicates` i *##I$@$@+N N  9 -y44<(3 %   D#; /4=>D!!$'>   5 ) ), ,  3 'XXA9F >JaBaB<<?Afll1o&;&;C&@AA  !R;G G i "9k: : B6B B51?s3E6c||}|r| }|j|r$|jjjnd|r$|jjj nd|rdnd|rddzSddzS)Nz z zdoesn't supportz does support)driverdatabasedoesnt_support does_support)rrurlget_driver_nameget_backend_name)rrnegatebool_s r_format_descriptionzPredicate._format_descriptionsV  JE39 --/}5; ..038/n.3N #  :K #  rctr )NotImplementedErrorrrrs rr@zPredicate._as_strings !##rr F)NF)r[rmrn classmethodrrr@rrrrryrys!!C!CF  $rryc"eZdZddZdZddZy)BooleanPredicateNc.||_|xsd|z|_y)Nz boolean %s)valuer)rrrs rr zBooleanPredicate.__init__s &>,*>rc|jSr )rrrs rrNzBooleanPredicate.__call__s zzrc(|j||S)Nrrrs rr@zBooleanPredicate._as_strings''v'>>rr rr[rmrnr rNr@rrrrrrs??rrc eZdZddZej ej ejejejejejddZ dZ ddZy) rNc<||_||_||_||_yr )rrrr)rrrrrs rr zSpecPredicate.__init__s &rc&||dk\xr||dkS)Nrrrr)valpairs rzSpecPredicate.sSDG^%FtAwr)<>z==z!=z<=z>=inbetweenc|y|j}d|jvr|jjd\}}n|jd}}|r|j|k7ry||j|k7ry|jf|Jdt |}t |jdxr |jxs|j|j}|||jSy)NF+z%DBAPI version specs not supported yetrNT) rrrXrr_server_versionrL_opsr)rrenginedialectrversionopers rrNzSpecPredicate.__call__s > $''>"ggmmC0OGV"ggtVG v{{g-  &--6"9 77 > J#J J>%f-G,8NDIIdgg.*s girrrzcustom function)rrrIrJr__doc__)rrrrIrJrs ` rr zLambdaPredicate.__init__'s^%g.Aw/DL"DLJB ( *D  __&D 0D rc$|j|Sr )rrs rrNzLambdaPredicate.__call__6s||F##rc$|j|Sr rrs rr@zLambdaPredicate._as_string9s''//rrrrrrrrrr&s 1$0rrc"eZdZddZdZddZy)r/Nc ||_||_yr )rr)rrrs rr zNotPredicate.__init__>s"&rc&|j| Sr )rrs rrNzNotPredicate.__call__Bs>>&)))rcz|jr|j|| S|jj|| Sr )rrrr@rs rr@zNotPredicate._as_stringEs9   ++FJ? ?>>,,VZ@ @rr rrrrrrr/r/=s'*Arr/c0eZdZddZdZddZdZddZy) rNc ||_||_yr ) predicatesr)rrrs rr zOrPredicate.__init__Ms$&rc:|jD] }||s yy)NTF)r)rrrs rrNzOrPredicate.__call__Qs$OO DF| rc^rd}nd}|jfd|jDS)Nrfz or c3DK|]}|jyw)rNrh)r0prrs rr2z(OrPredicate._eval_str..\s# 45ALLL / s )rkr)rrr conjunctions `` r _eval_strzOrPredicate._eval_strWs4 !K K 9=   rch|jd|j|zS|j|dS)NzNot Tr)rrrrs r _negation_strzOrPredicate._negation_str`s7    'D44V<< <>>&>6 6rc|r|j|S|j|j|S|j|Sr )rrrrrs rr@zOrPredicate._as_stringfsB %%f- -+//77~~f--rr r)r[rmrnr rNrrr@rrrrrrLs'  7 .rrcDt|||tjSr )rrr:)rrrs r _is_excludedrss &=R &v 77rc||j}t|jdd}|d}|j|S)z#Return a server_version_info tuple.server_version_infoNrr)connectgetattrrclose)rconnrs rrrws; >> Dfnn&;TBGJJL Nrcdt|Dcgc]}tj|c}Scc}wr rryrdbsrs rdb_specrs& SAr ..r2A BBAs-c,ttddS)NFzmark as executerrrrrropenrs #E+<= >>rc,ttd|S)NTrrs rclosedrs #D&1 22rc4ttd|xsdS)NTzexpected to failrrrs rrrs $T6+G5GH IIrc,ttddS)NTzFuture featurerrrrrfuturers $T+;< ==rct||Sr )rrrs rfails_onrs B rc vtt|Dcgc]}tj|c}Scc}wr )rwrryrrs rfails_on_everything_exceptrs+ {#M2I$:$:2$>#MN OO#Ms6 ct||Sr )rrs rr6r6s 2v rc tttj|Dcgc]}tj ||c}Scc}wr )rurrto_listryr)rrrs ronly_onrs> :>,,s:K LBY # #B / L   LsA c0tt||||Sr )rr)rrrrs rexcluders =R. 77rc |sJdt|Dcgc]}tj|c}|Scc}w)Nzno queries sent!r)rqueriesquerys ragainstrs@ &&&7 L;7K% ..u5K L Ks< r )zmarked as skip)$rprrrcrrr util.compatrrrr rurwryrrrr/rrr rrrrrrrrrr6rrrrrrrr s 0wwt4 5 5$5$p ?y ?9BI9Bx0i0. A9 A!.)!.H&& 8 C?3J> P8r