mò /á¸Ec@sƒdZddd!ZdkZdkZdklZdkZdkZdkZdkZdk Z dk Z eie_ dk l Z dklZdklZd klZd klZd klZlZeiieieƒƒd ƒZd Zdeeie iefd„ƒYZdefd„ƒYZ dfd„ƒYZ!ddd„Z"ei#eiiedƒƒZ$ei#eiiedƒƒZ%ddei&dƒi'd„Z(ddei&dƒi'd„Z)d„Z*d„Z+d„Z,d fd!„ƒYZ-ddei&d"ƒei&d#ƒei&d$ƒd%„Z/d5d6d7d8fd.„Z0d/„Z1dei&d0ƒei&d1ƒei&d2ƒd3„Z2d4„Z3dS(9sWShared classes and functions $Id: Aqueduct.py 40218 2005-11-18 14:39:19Z andreasjung $s$Revision: 1.58 $i iþÿÿÿN(s Persistent(sStringIO(s SimpleItem(s RoleManager(sHTML(sRedirect(sstripsreplacetdtmlsInvalid Parametert BaseQuerycBsktZd„Zd„Zd„ZeiƒZfZd„Z d„Z dZ d„Z d„Z dZhZRS( NcCs |iiƒS(N(tselft query_datetyear(R((t6/data/zmath/zope/lib/python/Shared/DC/ZRDB/Aqueduct.pyt query_year'scCs |iiƒS(N(RRtmonth(R((Rt query_month(scCs |iiƒS(N(RRtday(R((Rt query_day)scCs t|iƒS(N(t quotedHTMLRt input_src(R((Rt quoted_input-scCs t|iƒS(N(R Rt report_src(R((Rt quoted_report.ss Bad RequestcCst|iƒ|_dS(N(tparseRt arguments_srct_arg(R((Rt_convert2sc Csÿh}y |i}Wn|iƒ|i}nX|i}g}x¹|iƒD]«}d||f}y||||((Rt _getquerys&   cCst|id„|iƒƒS(NcCshd|<d||j”s(tmapRRFt ZQueryIds(R((Rt myQueryIds’s(R!R"RCRJ(((RR9s tquerytcCsh|oI|iƒ}dd||||ftitd„|ƒdƒdfSnd||||fSdS(Ns%s %s%ssP %s Input Data %s

%s Input Data

Enter query parameters:
cCssdt|dƒ|didƒod|d|ddfp|d|didƒo|ddpdfS(Ns_iittypes%s:%sRRL(tnicifytathas_key(RO((RRG©ss s/
%s
s\ %s Input Data %s

%s Input Data

This query requires no input.

(t argumentstitemsRttabstactiontstringt joinfieldsRH(RRQRTRSRR((RR-˜s  % scustomDefaultReport.dtmlscustomDefaultZPTReport.dtmlis\Wc Cs-|iƒ}|} dtitd„|ƒdƒ} |od\}}} }} nd\}}} }} g}xw|D]o}|d } || ƒdj od d|  d} n|id| | |ddjodpd|fƒqvWd|ti|| ƒ|f}td|d| d|d|d|ƒS(Ns %s cCsdt|dƒS(Ns %s R(RNtc(RW((RRGãsRLs

s

s, sssss Rs expr="_['%s]"t"is %s%sRMtss null=""s %s %s %sRtheadingtrowRTtno_table(s

s

RLRLs, (sssss (R1R+tcolumnsR<RURVRHRZR\ttrt_trttdt_tdtdelimR[RWtntgoofyR'Rtcustom_default_report_srcRRT(RR1RTR\RdRWRaR_R^R<RbR`RcRZR]R[((RR2Üs"   9c Csë|iƒ}|} dtitd„|ƒdƒ} |od\}}} }} nd\}}} }} g}x5|D]-}|d } |id | | | |fƒqvWd|ti|| ƒ|f}td|d| d|d|d|ƒS(Ns %s cCsdt|dƒS(Ns %s R(RNRW(RW((RRGsRLs

s

s, sssss Rs? %s%s goes here%ss %s %s %sRRZR[RTR\(s

s

RLRLs, (sssss (R1R+R]R<RURVRHRZR\R^R_R`RaRbR[RWRcRtcustom_default_zpt_report_srcRRT(RR1RTR\RdRWRaR_R^R<RbR`RcRZR]R[((Rtcustom_default_zpt_reportús   !cCs1ti|dƒ}|djo|| }n|S(Nt:i(RUtfindRtl(RRj((Rtdetypifys cCsDx=|iƒ}|pPnti|d ƒ}|i|ƒqWdS(Niiÿÿÿÿ(tinputtreadlinetlinetbinasciit a2b_base64RYtoutputtwrite(RlRqRnRY((Rtdecodes cCs,t|ƒ}tƒ}t||ƒ|iƒS(N(tStringIORYtftgRstgetvalue(RYRvRu((Rt decodestring&s   tArgscBsYtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z RS( NcCs||_||_dS(N(tdataRt_dataRt_keys(RRzR((Rt__init__-s cCst|id„|iƒS(NcCs|||fS(N(REtd(RER~((RRG2s(RHRR{R|(R((RRR1scCst|id„|iƒS(NcCs||S(N(R~RE(RER~((RRG5s(RHRR{R|(R((Rtvalues4scCs t|iƒS(N(tlistRR|(R((RR7scCs|ii|ƒS(N(RR{RPtkey(RR((RRP8scCs |i|S(N(RR{R(RR((Rt __getitem__9scCs||i|s>RXs"cCs-x&|D]\}}t|||ƒ}qW|S(N(tcharacter_entitiestreRtreplaceRˆ(RˆR–RR—((RR vs cCs4tti|ƒddƒ}ti|d ƒ|dS(Nt_R5i(R˜RURRtupper(R((RRNƒssK(([^\000- <>:]+:[^\n]*\n|[ \011]+[^\000- ][^\n]*\n)+)[ \t]*\n([\000-\377]+)s([ \t]+)s([^\000- <>:]+):([^\n]*)c Csx|i|ƒ}|djo|Sn|iddƒ\}}ti|dƒ}d}x”|t |ƒjo€||p ||=qW|i||ƒ}|oBd||d||t |idƒƒf||d<||=qW|d}qWWx†t t |ƒƒD]r}|i||ƒ}|o+|iddƒ\} }ti|ƒ}ntd|||f‚|i| |ƒqþW|S(Niis s%s %sisInvalid Header (%d): %s (t header_reRŠthtmlR‹R'RŒtheadersRUtsplitR;R†tspace_retrangetname_reRERƒRt ValueErrortRESPONSEt setHeader( RœR£R›RŸR¡R;R‹RRƒRE((Rt decapitate‡s0    7 cCsy|d}y|d}Wn d}nX|id|ƒti}d||iƒ|ƒ|t ||d„|ƒdƒfS(Nsoutput-delimiters output-types text/plains content-types%s %s cCs|tt|ƒ|ƒS(N(tjoinRHtstrR[Rb(R[RbR¦((RRG¼ss ( RRbt output_typeR£R¤RUR¦tresultstnamesRH(R©RR£R¦RbR¨((Rtdelimited_output´s   '(R“s&(R”s<(R•s>(RXs"(4t__doc__t __version__tGlobalstost PersistenttDocumentTemplateR#R—RURot AcquisitionR$t cStringIORttOFSt SimpleItemtAccessControl.Rolet RoleManagerR/t zExceptionsR6RR˜tpathR¦t package_hometglobalstdtml_dirR‘tItemtImplicitRR)R9R-tFileReRftcompiletsearchR2RgRkRsRxRyR'RR RNR¥R«(%R6RRfR·R#RRkR-RRxR2R‘R9RyRoRsR—R/R¥RNR­R¬ReRUR°RµRgR˜R²R)RtR¼R R®R±R«R¯((Rt? s>  $      !%>?   37 0-