mò ,á¸Ec @sdZddd!ZdkZdkZdkZdklZdddd d d d gZd ddddddgZdddddddddddddg Z dd „Z dd!„Z dd"„Z ed#„Zed$„Zeeed%„Zd&„ZeZd'„ZdS((s Commonly used utility functions.s$Revision: 1.20 $i iþÿÿÿN(srealpathtMontTuetWedtThutFritSattSuntMondaytTuesdayt WednesdaytThursdaytFridaytSaturdaytSundaytJantFebtMartAprtMaytJuntJultAugtSeptOcttNovtDeccCs6|djotiƒ}ntidti|ƒƒS(Ns%Y-%m-%dT%H:%M:%SZ(ttstNonettimetstrftimetgmtime(R((t)/data/zmath/zope/lib/python/App/Common.pyt iso8601_date$s c Csv|djotiƒ}nti|ƒ\ }}} }}}}}}dt || t|t|ƒd|||fS(Ns#%s, %02d-%3s-%2s %02d:%02d:%02d GMTi(RRRRtyeartmonthtdaythhtmmtsstwdtytzt weekday_fullt monthnametstr( RR'R%R"R&R$R!R(R)R#((Rt rfc850_date+s *c Csl|djotiƒ}nti|ƒ\ }}} }}}}}}dt || t|||||fS(Ns#%s, %02d %3s %4d %02d:%02d:%02d GMT(RRRRR!R"R#R$R%R&R'R(R)t weekday_abbrR+( RR'R%R"R&R$R!R(R)R#((Rt rfc1123_date6s *cCs||ƒo |ƒSn|S(N(tcallabletattr(R1R0((RtabsattrAs  cCs||d|ƒS(Ntaq_base(tgetattrtob(R5R4((RR3HscCs||dƒpdSn||iƒ}||iƒ}|||ƒodSn||dƒoFy,||i|ƒ||ƒjodSnWq¤tj oq¤Xn||dƒo#|d|i ƒjodSq×n|||ƒdƒo|i odSndS(Nt aq_parentit __getitem__t_objectst t$isTopLevelPrincipiaApplicationObjecti( thasattrR5R3R6tparentR2tidtabsIdtKeyErrort objectIdsR:(R5R;R3R2R<R>((Rt is_acquiredLs$     cCs€|d}ti|}t|dƒo|id}n9d|jo%ti||idƒ id}n|}t i i |ƒS(Nt__name__t__path__it.( t globals_dictRBtsystmodulestmR;RCtrtrfindtostpathtabspath(RERHRIRB((Rt package_homews   %cKs|S(N(tkw(RO((Rt Dictionary†s(t__doc__t __version__RKRFRtos.pathtrealpathR.R*RR+R R-R/R0R2R4R3R;RARNtattrgetRP(RTR2RPRURAR.R-R RFRNR+RR/RRRKR*R3((Rt?s"     -   +