Ñò èÙ|Hc@s ddkTddklZlZlZddklZddklZddkl Z ddk l Z l Z ddd d d d d dddddddgZ defd„ƒYZdefd„ƒYZeeefƒd„ƒeƒe dfe dfd„Zeƒed„Zeeeefƒd„ƒeeeefƒd„ƒeeeefƒd„ƒeeeefƒd„ƒeeeefƒd „ƒd!„Zeeeefƒd"„Zeeeefƒd#„ƒeeeefƒd$„ƒeeefƒd%„ƒeeefƒd&„ƒeƒed'„Zeeefƒd(„ƒeeeefƒd)„Zeeeefƒd*„ƒeeeefƒd+„ƒeeeefƒd,„ƒeƒd-„Zeeefƒd.„ƒeeeefƒd/„ƒeeeefƒd0„Zhd1„d26d3„d46d5„d66d7„d86d9„d:6d;„d<6Zed8ed=sicCs||jotS||fS(N(tFalse(tlothi((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR "s cCs ||fS(N((tvaluetmatch((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR 'scCs2|io(|i|idfjo |ijSS(i(R*R'R)R((tc1tc2((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%,scCsh|i o.|i|idfjo |ijn p/|io%|t|idf|idfƒjS(iiÿÿÿÿi(R*R'R)R(R (R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%0s9cCs#|i|ijo|i|ijS((R'R((R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%5scCs2||jp%|io|i o|i|ijS((R*R)(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%8scCs+tt|i|iƒt|i|iƒƒS((R tmaxR'tminR((R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%;scCsY|idf|idf}}|iot||ƒSttd|ƒtd|ƒgƒS(NiÿÿÿÿiR(R'(R)R*R R(tvR'R(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytto_range>s cCs+||jo|Stt|ƒt|ƒƒS(N(R!R0(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytintersect_valuesEs cCs%|i ot|t|ƒƒptS((R*R!R0R&(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%LscCs%|i ott|ƒ|ƒptS((R*R!R0R&(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%OscCst|i|i ƒS((R R)R*(R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%SscCs(ttd|iƒtd|iƒgƒS(R(R'(RR R'R((R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%TscCs ||fS(N((RR*((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR XscCst|i|i ƒS((R RR*(R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%[scCsj||jotS|io|iot|i|iƒS|ip |iotSt|i|iƒSdS(N(tTrueR*timpliesRR&(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyt class_implies^s cCst||gƒS((R (R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%nscCs&|io|it|i|iƒjS((R*t issubclassttypeR(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%pscCs;|io1|i o&|i|ij ot|i|iƒS((R*RR6R5(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%ss(cCsXt|ƒ}t|ƒdjo/tg}|D]}|t||ƒq-~ƒS||fS(Ni(t disjunctstlenRR(texprt criteriontdt_[1]R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR}s /cCst|it|iƒƒS((RR9R#R:(R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%ƒscCs&|i|ijot|i|iƒS((R9R3R:(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%†scCsG|i|ijo t|it|i|iƒƒSt||gƒSdS(N(R9RR!R:R(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytintersect_testsŠs cCstd|dfƒS(R'i(R (R/((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%‘st>cCstd|dfƒS(R'iÿÿÿÿ(R (R/((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%’ss>=cCstd|dfƒS(R(iÿÿÿÿ(R (R/((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%“sts<>cCst||ƒS(N(t inequalities(topR)((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRscBs eZdZd„Zd„ZRS(s#Represent and-ed Tests, in sequencecCsg}h}t|ƒ}xÇ|D]¿}|tjoqn|tjotS|i}||jo\||}||}t||ƒoqnt||ƒ}|||<|tjotSqt|ƒ}||<|i|ƒqW|ptSt|ƒdjo |dSti ||ƒS(Nii( titerR2R&R9R3R!R8tappendttupleR(RRtoutputtindextnewR9tposntold((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR¨s2         cCsdtt|ƒƒdS(Ns Signature(t)(treprtlist(tself((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyt__repr__Ås(RRRRRN(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR¥s cCsttt|ƒƒS((RR"R#(R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%ÈscBs2eZdZdZed„Zd„Zd„ZRS(sCriterion for 'is' comparisonsRR*cCs5tii|t|ƒt@ƒ}||_||_|S(N(R t__base__RtidRR*R(RtobR*RM((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRÓs  cCss||jpft|tƒo&|i|ijo|i|ijp0t|ttfƒot|ƒ|jo|iS(N(t isinstanceR R*Rtinttlong(RMtother((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyt__eq__Ùs #cCsd|i|ifS(NsIsObject(%r, %r)(RR*(RM((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRNßs(srefsmatch(RRRRR2RRVRN(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR Îs   cCst|i|i ƒS((R RR*(R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%âscCs2||jp%|io|i o|i|ij S(N(R*R(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytimplies_objectsåscCs@|io |ip|i|ijotSt||gƒSdS(N(R*RR&R(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytintersect_objectsês'cBseZdZd„ZRS(s1Set of minimal or-ed conditions (i.e. no redundant/implying items) Note that a Disjunction can never have less than 2 members, as creating a Disjunction with only 1 item returns that item, and creating one with no items returns ``False`` (as no acceptable conditions means "never true"). cCs»g}xz|D]r}xit|ƒD][}xR|D]<}t||ƒoPq.t||ƒo|i|ƒq.q.W|i|ƒq Wq W|ptSt|ƒdjo |dSti||ƒS(Nii(R7R3tremoveRCR&R8RR(RRREtitemRGRI((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRþs"  (RRRR(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR÷scCs.x'|D]}t||ƒptSqWtSdS(N(R3R&R2(R+R,R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyt union_impliess  cCs.x'|D]}t||ƒotSqWtSdS(N(R3R2R&(R+R,R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytob_implies_unions  cCs4t|ƒg}|D]}|t||ƒq~ƒS((R6R!(R+R,R<tx((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%%scCs4t|ƒg}|D]}|t||ƒq~ƒS((R6R!(R+R,R<R]((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%(scCsAt|ƒg}|D]#}|D]}|t||ƒqq~ƒS((R6R!(R+R,R<R]ty((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%+scCs4t|ƒg}|D]}|t||ƒq~ƒS((R6R!(R+R,R<R]((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%.scCs4t|ƒg}|D]}|t||ƒq~ƒS((R6R!(R+R,R<R]((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%1scCs| S(((R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%:scCs|S(((R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%;scCsdS(s$Yield the tests composing ob, if anyN((RQtengine((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRAscCs t|gƒS((RB(RQte((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%DscCs t|ƒS((RB(RQR`((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%EscCs tgƒS((RB(RQR`((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%FscBseZdZd„ZRS(s6Set of minimal and-ed conditions (i.e. no redundant/implied items) Note that a Conjunction can never have less than 2 members, as creating a Conjunction with only 1 item returns that item, and creating one with no items returns ``True`` (since no required conditions means "always true"). cCs¹g}xx|D]p}xg|D]Q}t||ƒoPqt||ƒo|i|ƒqt||ƒotSqW|i|ƒq W|ptSt|ƒdjo |dSti||ƒS(Nii( R3RYtmutually_exclusiveR&RCR2R8RR(RRRERGRI((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRQs"  (RRRR(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRIscCs.x'|D]}t||ƒotSqWtSdS(N(R3R2R&(R+R,R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyt set_impliesds  cCs.x'|D]}t||ƒptSqWtSdS(N(R3R&R2(R+R,R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytob_implies_setls  cCsttt|ƒƒS((RR"R#(R$((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%rscCs|ipt||gƒStS(N(R*R R&(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytintersect_type_classus cCs|ipt||gƒStS(N(R*R R&(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRdzs cCs)|ip |iotSt||gƒS(N(R*R&R (R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytintersect_type_typescCstS(s:Is the intersection of c1 and c2 known to be always false?(R&(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRa…scCs#|i|ijo|i|ijS((R*R6(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%ŠscCs t|ƒt|ƒt|ƒƒS((R6RL(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%¢scCst|ƒt|ƒ|gƒS((R6RL(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%¥scCst|ƒ|gt|ƒƒS((R6RL(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%¨scCst||gƒS((R(R+R,((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR%¬scBseZdZRS(s A set of related Class instances(RRR(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR ®scBseZdZRS(s(Collection of and-ed "is not" conditions(RRR(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyR·scBs eZdZd„Zd„ZRS(sASEQUENCE of or-ed conditions (excluding redundant/implying items)cCs¤g}xc|D][}xR|D]<}t||ƒoPqt||ƒo|i|ƒqqW|i|ƒq W|ptSt|ƒdjo |dSti||ƒS(Nii(R3RYRCR&R8RDR(RRRERZRI((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRÇs cCsd|iit|ƒfS(Ns%s(%s)(t __class__RRL(RM((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRN×s(RRRRRN(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pyRÄs cCs[t}tƒ}x?|D]7}|itt||ƒƒƒt|t|ƒƒ}qWt|ƒS(N(R2RtupdateR7R!R#RL(R$tpretouttcond((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytsequential_disjunctsÜs N(;tpeak.rules.coreRRRtpeak.util.decoratorsRtweakrefRtsysRtpeak.util.extremesRRt__all__tobjectRRtwhenR#R R2R R3R!R0R1R R4tistypeRR=R@RRDRRSR RWRXRR[R\taroundtboolR7RLtabstracttNoneRRRbRcRdReRaR RRRk(((s7/usr/lib/python2.6/site-packages/peak/rules/criteria.pytsð                        #