Ñò ha-Kc @sgdZddkZyddklZWnej onXyddklZWnej od„ZnXdefd„ƒYZ d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zddd„ƒYZdd d„ƒYZdeefd„ƒYZdefd„ƒYZdd!d„ƒYZdd"d„ƒYZdS(#s @@TR: This code is pretty much unsupported. MondoReport.py -- Batching module for Python and Cheetah. Version 2001-Nov-18. Doesn't do much practical yet, but the companion testMondoReport.py passes all its tests. -Mike Orr (Iron) TODO: BatchRecord.prev/next/prev_batches/next_batches/query, prev.query, next.query. How about Report: .page(), .all(), .summary()? Or PageBreaker. iÿÿÿÿN(treduce(t valueForKeycCs*t||ƒot||ƒS||SdS(N(thasattrtgetattr(tobjtname((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt lookup_funcst NegativeErrorcBseZRS((t__name__t __module__(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR"scCst|ttfƒS(N(t isinstancetinttfloat(tv((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt isNumeric%scCs4t|ƒ}|o|djot|ƒ‚ndS(Ni(RR(R tret((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt isNonNegative(s cCs |dj S(N(tNone(R ((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt isNotNone-scCsÏt|ƒ}|djotd|ƒ‚nd}x&|djo|d}|d}q6Wx&|djo|d}|d}q_Wx&|djo|d}|d }qˆWx&|d jo|d }|d }q±Wx&|d jo|d }|d }qÚWx&|djo|d}|d}qWx3|djo%|djo|d}|d}q,W|iddƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}|iddƒ}|S(Nis.roman numeral for zero or negative undefined: tiètMiôtDidtCi2tLi tXitVtItDCCCCtCMtCCCCtCDtLXXXXtXCtXXXXtXLtVIIIItIXtIIIItIV(R t ValueErrortreplace(tntroman((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytRoman0sN               cCstti|dƒS(Ni(Rtoperatortadd(tlis((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytsumSscCs8t|ƒ}|djodStt|ƒƒ}||S(s,Always returns a floating-point number. ig(tlenR R/(R.tlis_lenttotal((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytmeanVs   cCs%t|ƒ}|tt|ƒdƒS(Ni(tsortedR R0(R.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytmedian_s cCs tƒ‚dS(N(tNotImplementedError(R.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytvariancedscCs tƒ‚dS(N(R6(R.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt variance_ngscCs tƒ‚dS(N(R6(R.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytstandardDeviationjscCs tƒ‚dS(N(R6(R.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytstandardDeviation_nmst IndexFormatscBsƒeZdZd d„Zd„ZeZd„Zd„Zd„Z d„Z d„Z d„Z d „Z d „Zd „Zd „ZRS(s[Eight ways to display a subscript index. ("Fifty ways to leave your lover....") cCs#||_|d|_||_dS(Ni(t_indext_numbert_item(tselftindextitem((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt__init__vs  cCs|iS(N(R<(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR@{scCs|iS(N(R=(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytnumber€scCs|iddjS(Nii(R=(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytevenƒscCs |iƒ S(N(RD(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytodd†scCs|iddjS(Nii(R<(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyteven_i‰scCs |iƒ S(N(RF(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytodd_iŒscCs|iƒiƒS(N(tLettertlower(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytletterscCstdƒ|i}t|ƒS(NtA(tordR<tchr(R?R)((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRH’scCs|iƒiƒS(N(R+RI(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR*–scCs t|iƒS(N(R+R=(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR+™scCs|iS(N(R>(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRAœsN(RR t__doc__RRBR@t__call__RCRDRERFRGRJRHR*R+RA(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR;rs           tValuesGetterMixincBs eZd„Zddd„ZRS(cCs ||_dS(N(t _origList(R?torigList((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRB¤scCse|o1g}|iD]}|t||ƒq~}n |i}|ott||ƒƒ}n|S(N(RQRtlisttfilter(R?tfieldtcriteriat_[1]telmR((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt _getValues§s 1 N(RR RBRRY(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRP£s t RecordStatscBs³eZdZd„Zd„Zd„Zd„Zd„Zdd„Z dd„Z ddd d d „Z d „Z d „Z d„Zd„Zd„ZeZeZd„Zd„ZRS(s6The statistics that depend on the current record. cCs1||}ti|||ƒti||ƒdS(N(R;RBRP(R?RRR@trecord((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRB´s cCs t|iƒS(N(R0RQ(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytlength¹scCs |idjS(Ni(R<(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytfirst¼scCs|it|iƒdjS(Ni(R<R0RQ(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytlast¿scCsh|i|}y|i|}Wntj otSX|o"t||ƒ}t||ƒ}n||jS(N(RQt IndexErrortTrueR(R?RUt currentIndext otherIndext currentValuet otherValue((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt_firstOrLastValueÂs cCs|i||i|idƒS(Ni(ReR<(R?RU((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt firstValueÍscCs|i||i|idƒS(Ni(ReR<(R?RU((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt lastValueÐst%sN/Aic Csú|i|i}|ot||ƒ}n|}y|i|tƒ}Wntj o|SXt|ƒ}|djo|St|ƒ}y||d} Wntj o|SX|djot | ƒ} nt | |ƒ} |ot | ƒ|S| SdS(Ngidi( RQR<RRYRRR/R tZeroDivisionErrorR troundtstr( R?RUtsuffixtdefaulttdecimalstrectvalR.R2tpercent((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytpercentOfTotalÕs,    cCs tƒ‚dS(sHThis instance is not callable, so we override the super method. N(R6(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyROðscCsE|idjodS|iƒ}|i|}t|i||ƒSdS(Ni(R<RR\t PrevNextPageRQ(R?R\tstart((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytprevõs   cCsU|i|iƒ|iƒjodS|iƒ}|i|}t|i||ƒSdS(N(R<R\RRsRQ(R?R\Rt((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytnextýs    cCs tƒ‚dS(N(R6(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt prevPagesscCs tƒ‚dS(N(R6(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt nextPagesscCs tƒ‚dS(N(R6(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytsummarysc Cs’|djoC|djo,|djo||jo|d|}qPd}n|djoŠy||dWnt|ƒ}nX|djo||jo |}qãq…||d}y|||dWq…t|ƒ}q…XnŸ|djoSy||dWnt|ƒ}nX|d|}|d|jo d}q…n?d}||d}y|||dWnt|ƒ}nX|||fS(s8Copied from Zope's DT_InSV.py's "opt" function. iii(R0(R?Rttendtsizetorphantsequence((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyt_prevNextHelpers@ '     N(RR RNRBR\R]R^ReRRfRgRrRORuRvRwRxt prev_batchest next_batchesRyR~(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRZ±s$            tSummarycBs›eZdZd„Zd d„ZeZd d„Zd d„Zd d„Z d d„Z e Z d d„Z d d„Z d d „Zd d „Zd d „ZRS( sEThe summary statistics, that don't depend on the current record. cCsti||ƒdS(N(RPRB(R?RR((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRB;scCs|i|tƒ}t|ƒS(N(RYRR/(R?RUR.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR/>scCs|i|tƒ}t|ƒS(N(RYRR0(R?RUR.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytcountDscCs|i|tƒ}t|ƒS(N(RYRtmin(R?RUR.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRƒHscCs|i|tƒ}t|ƒS(N(RYRtmax(R?RUR.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR„LscCs|i|tƒ}t|ƒS(s0Always returns a floating point number. (RYRR3(R?RUR.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR3PscCs|i|tƒ}t|ƒS(N(RYRR5(R?RUR.((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR5XscCs tƒdS(N(traiseNotImplementedError(R?RU((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR7\scCs tƒdS(N(R…(R?RU((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR8_scCs tƒdS(N(R…(R?RU((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR9bscCs tƒdS(N(R…(R?RU((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR:esN(RR RNRBRR/R2R‚RƒR„R3taverageR5R7R8R9R:(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR8s          RscBseZd„ZRS(cCsC||}t|||ƒ|_t|||ƒ|_||_dS(N(R;RtRzR\(R?RRR{RtRz((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRBjs (RR RB(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRsist MondoReportcBsDeZeZeZd„Zddd„ZeZd„Z d„Z RS(cCs ||_dS(N(RQ(R?toriglist((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRBvsicCsü|djotdƒ‚n|djotdƒ‚n|i}t|ƒ}td|ƒ}t||t|iƒƒ}|||!}g} xht|ƒD]Z} || } || } |i|| ƒ} |i|| ƒ}| | |f}| i|ƒqšW| S(s%Returns list of ($r, $a, $b) isnon-zero overlapsnon-zero orphan(R6RQR0R„Rƒtranget_RecordStatsClasstappend(R?R{RttoverlapR|RRt origList_lenRztmySliceRtreltabs_trtatbttup((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytpageys&        cCs%t|iƒ}|i|dddƒS(Ni(R0RQR•(R?R((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pytall’scCs|i|iƒS(N(t _SummaryClassRQ(R?((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyRy—s( RR RZRŠRR—RBR•tbatchR–Ry(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyR‡rs  (((((RNR,t functoolsRt ImportErrortCheetah.NameMapperRRR'RRRRR+R/R3R5R7R8R9R:R;RPRZRRsR‡(((s?/usr/lib64/python2.6/site-packages/Cheetah/Tools/MondoReport.pyts8     #      1‡1 \