ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ M!Vc@sdZddlZddlmZddlmZddlmZddlm Z dd l m Z ddl Z ddl Z dd l m Z mZdd Zdd Zd efdYZdZdZddZddZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZejZdZ d Z!d!Z"d"Z#d#Z$d$Z%ed%Z&dd&Z'd'Z(dd(Z)dd)Z*dd*Z+d+Z,dS(,sNOTE: copied/adapted from SQLAlchemy master for backwards compatibility; this should be removable when Alembic targets SQLAlchemy 1.0.0 iNi(tSkipTest(t decorator(tconfig(tutili(tcompat(tget_url_driver_nametget_url_backend_namecCs,t}t||}|jj||S(N(tcompoundt _as_predicatetskipstadd(t predicatetreasontruletpred((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytskip_ifs cCs,t}t||}|jj||S(N(RRtfailsR (R R R R((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytfails_ifs RcBseZdZdZdZdZedZdZdZ dZ dZ d Z e jd Zd Zd d Zd dZRS(cCs(t|_t|_t|_dS(N(tsetRR ttags(tself((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt__init__&s  cCs |j|S(N(R (Rtother((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt__add__+scGst}|jj|j|jj|j|jj|jxG|D]?}|jj|j|jj|j|jj|jqIW|S(N(RRtupdateR R(RtotherstcopyR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR .s  cCsZt}|jjd|jD|jjd|jD|jj|j|S(Ncss|]}t|VqdS(N(t NotPredicate(t.0tfail((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pys ;scss|]}t|VqdS(N(R(Rtskip((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pys <s(RRRR R(RR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytnot_9s  cCs|jtjS(N(tenabled_for_configRt_current(R((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytenabled@scCs8x1|jj|jD]}||rtSqWtSdS(N(R tunionRtFalsetTrue(RRR ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR Ds cCs;g|jj|jD]!}||r|j|^qS(N(R R#Rt _as_string(RRR ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytmatching_config_reasonsKscCs0t|jj| o,| p,|jj|S(N(tboolRt intersection(Rt include_tagst exclude_tags((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt include_testRscCs=|jj|j|jj|j|jj|jdS(N(R RRR(RR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt_extendXscsQt|dr#|jj|Stfd}||}|_|S(Nt_sa_exclusion_extendcsjtj|||S(N(t_doRR!(tfntargstkw(R(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytdecoratebs(thasattrR.R-R(RR0R3t decorated((RsK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt__call__]s  ccsnt}|jj|jj|jy dVWn&tk rY}|jtj|nX|j tjdS(N( RRRR R#t Exceptiont_expect_failureRR!t_expect_success(Rt all_failstex((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytfail_ifis  c OsxH|jD]=}||r d|j|j|f}t|q q Wy|||}Wn,tk r}|j||d|jnX|j|d|j|SdS(Ns '%s' : %stname(R t__name__R&RR7R8R9( RRR0R1R2Rtmsgt return_valueR;((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR/us tblockcCsVxO|jD]7}||r d||j|t|fGHPq q Wtj|dS(Ns%s failed as expected (%s): %s (RR&tstrRtraise_from_cause(RRR;R=R((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR8s  csg|js dSxS|jD]}|sPqqWtd|djfd|jDfdS(Ns Unexpected success for '%s' (%s)s and c3s|]}|jVqdS(N(R&(RR(R(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pys s(RtAssertionErrortjoin(RRR=R((RsK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR9s   (R>t __module__RRR RtpropertyR"R R'R,R-R6t contextlibtcontextmanagerR<R/R8R9(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR%s          cCs t|gS(N(R(ttagname((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt requires_tagscCst}|jj||S(N(RRR(ttagnamestcomp((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRs cCst|}tt||S(N(RRR(R R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytonly_ifs cCst|}tt||S(N(RRR(R R ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt succeeds_ifs t PredicatecBs5eZeddZedZdedZRS(cCsrt|tr+|j|jj|jSt|tr_|r[|jdkr[||_n|St|t t frt g|D]}|j|^q~|St|t rt |St|tjrR|jdd}d}}|jd}|r |jd}n|r<t d|jdjdD}nt |||d|Stj|rnt||SdS(Nt iicss|]}t|VqdS(N(tint(Rtd((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pys st.t description(t isinstanceRt as_predicateRR#R RPRUtNonetlistRt OrPredicatettuplet SpecPredicateRt string_typestsplittpopRtcallabletLambdaPredicate(tclsR RURttokenstoptspectdb((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRWs0   + cCss||}|r| }n|jit|jjd6t|jjd6|rWdndd6|rjdndd6S(Ntdrivertdatabasesdoesn't supports does supporttdoesnt_supportt does_support(RURRfturlR(RRtnegatetbool_((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt_format_descriptions   cCs tdS(N(tNotImplementedError(RRRl((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR&sN(R>RFt classmethodRXRWR$RnR&(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRPs tBooleanPredicatecBs)eZddZdZedZRS(cCs ||_|pd||_dS(Ns boolean %s(tvalueRU(RRrRU((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRs cCs|jS(N(Rr(RR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR6scCs|j|d|S(NRl(Rn(RRRl((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR&sN(R>RFRXRR6R$R&(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRqs  R\cBseZd d d dZiejd6ejd6ejd6ejd6ej d6ej d6ej d6dd 6Z d Z ed ZRS( cCs(||_||_||_||_dS(N(RfRdReRU(RRfRdReRU((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRs   ts==s!=s<=s>=tincCs||dko||dkS(Nii((tvaltpair((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytttbetweencCs|j}d|jkr3|jjd\}}n|jd}}|r\|j|kr\tS|dk r{|j|kr{tS|jdk rt|}t|jdr|jp|j |j}|||j St SdS(Nt+R6( RfR^RXR=R$RgRdt_server_versionR4t_opsReR%(RRtenginetdialectRgtversiontoper((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR6s  cCs|jdk r|j|S|jdkrJ|r<d|jSd|jSn:|rjd|j|j|jfSd|j|j|jfSdS(Nsnot %ss%ss not %s %s %ss%s %s %s(RURXRnRdRfRe(RRRl((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR&s   N(R>RFRXRtoperatortlttgtteqtnetletgetcontainsR}R6R$R&(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR\s         RacBs/eZddddZdZedZRS(cstj}|ds.fd|_n |_|p@d|_|pOi|_|rg||_n!jrj|_n d|_dS(NicsS(N((Rf(tlambda_(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRx3Ryscustom function((tinspectt getargspecRR1R2RUt__doc__(RRRUR1R2Re((RsK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR0s    cCs |j|S(N(R(RR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR6?scCs |j|S(N(Rn(RRRl((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR&BsN(R>RFRXRR6R$R&(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRa/s RcBs)eZddZdZedZRS(cCs||_||_dS(N(R RU(RR RU((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRGs cCs|j| S(N(R (RR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR6KscCs2|jr|j|| S|jj|| SdS(N(RURnR R&(RRRl((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR&Ns N(R>RFRXRR6R$R&(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRFs  RZcBs>eZddZdZedZdZedZRS(cCs||_||_dS(N(t predicatesRU(RRRU((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRVs cCs(x!|jD]}||r tSq WtS(N(RR%R$(RRR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR6Zs cs8rd}nd}|jfd|jDS(Ns and s or c3s$|]}|jdVqdS(RlN(R&(Rtp(RRl(sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pys es(RER(RRRlt conjunction((RRlsK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt _eval_str`s  cCs7|jdk r d|j|S|j|dtSdS(NsNot Rl(RURXRnRR%(RR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt _negation_strhscCs@|r|j|S|jdk r/|j|S|j|SdS(N(RRURXRnR(RRRl((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR&ns   N( R>RFRXRR6R$RRR&(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRZUs     cCst|||tjS(N(R\RR!(RfRdRe((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt _is_excluded{scCs/|j}t|jdd}|j|S(s#Return a server_version_info tuple.tserver_version_info((tconnecttgetattrRtclose(R~tconnR((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyR|s  cGs&tg|D]}tj|^q S(N(RZRPRW(tdbsRf((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytdb_specscCstttdS(Nsmark as execute(RRqR$(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytopenscCstttdS(Nsmarked as skip(RRqR%(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytclosedscCstttdS(Nsexpected to fail(RRqR%(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRscGstt|dS(NsFuture feature(RRa(R0targ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytfuturescCstt||S(N(RR\(RfR ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytfails_onscGs)ttg|D]}t|^q S(N(RORZR\(RRf((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytfails_on_everything_exceptscCstt||S(N(RR\(RfR ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyRscCs2ttgtj|D]}t|^qS(N(RNRZRtto_listR\(RR Rf((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytonly_onscCstt||||S(N(RR\(RfRdReR ((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytexcludescGs,tg|D]}tj|^q |S(N(RZRPRW(Rtqueriestquery((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pytagainsts(-RRtplugin.plugin_baseRtsqlalchemy.utilRRyRt sqlalchemyRRRRHRRRXRRtobjectRRKRRNRORPRqR\RaRRZRWRRR|RRRRRRRRRRR(((sK/opt/alt/python27/lib/python2.7/site-packages/alembic/testing/exclusions.pyt sH     }    - @#