mò m%ÜGc@sÄdkZdkZdkZdkZdklZydklZlZWndklZlZnXdZ dfd„ƒYZ de fd„ƒYZ de fd „ƒYZ d e fd „ƒYZ dS( N(smd5(sdumpssloadssCaching related functionality.tcachecBs;tZdZd„Zd„Zd„Zd„Zd„ZRS(s Generic cachecCs d‚dS(Nsnot implemented((tselftkey((t./home/holguin2/public_html/spyce/spyceCache.pyt __getitem__scCs d‚dS(Nsnot implemented((RRtvalue((Rt __setitem__scCs d‚dS(Nsnot implemented((RR((Rt __delitem__scCs d‚dS(Nsnot implemented((R((RtkeysscCs d‚dS(Nsnot implemented((RR((Rthas_key!s(t__name__t __module__t__doc__RRRRR (((RRs     t memoryCachecBsGtZdZed„Zd„Zd„Zd„Zd„Zd„Z RS(sIn-memory cachecCsh|_||_dS(N(RRtinfoStrtinfo(RR((Rt__init__*s cCs |i|S(N(RRR(RR((RR-scCs||i|scCsˆy|||jodSnWntj onXd}z2t|i|ƒdƒ}|it |dƒƒWd|o|i ƒnXdS(Ntwbiÿÿÿÿ( RRRR#RRRRtwritetdumpsR (RRRR((RRIs cCs7|i|ƒ}tii|ƒoti|ƒndS(N(RRRtfilenameRRtexiststremove(RRR'((RRSscCs d‚dS(Nsnot implemented((R((RRWscCs.y||dSWntj o dSnXdS(Nii(RRR#(RR((RR Ys cCsdtt|ƒƒiƒS(Ns spyceCache-(tmd5tstrRt hexdigest(RR((RR_s( R R R RRRRRRR R(((RR8s      t semanticCachecBsbtZdZed„Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z d „Z RS( sICache that knows how to validate and generate its own data. Note, that the cache stores elements as (validity, data) tuples. The valid is a function invoked as valid(key,validity), returning a boolean; and generate is a function invoked as generate(key) returning (validity, data). The get() method returns only the data.cCsE||_||_||_|djotiƒ}n||_dS(N(tvalidRtgenerateRtlockRt spyceLockt dummyLock(RRR.R/R0((RRss     cCsÍy|iiƒWn#d|iitiƒf‚nXz|idjo|i|ƒdSnY||ijp|i ||i|dƒ o|i|ƒ|i|Ÿs(RRtmaptvalues(R((RR=s cCs|io|iiƒndS(N(RRtclear(R((RR>¢s ( R R R RRR8R9RRR RR=R>(((RR-ms         (R1R5RRR*tcPickleR&RtpickleR RR RR-( RR R5RRR R&R-R1RRR*((Rt? s 5