mς γΈEc @sσdkZdklZdklZdklZdklZl Z dk l Z dk l Z dk lZdklZd klZlZd klZd klZee e eiddddd „Zee e eiddd ddd„ ZdS(N(sviewmeta(szcml(sConfigurationError(s InterfacesclassImplements(s IBrowserView(sIDefaultBrowserLayer(s interfaces(sInitializeClass(s protectClasss protectName(smanager(sviewletc  Cs|djo ti}n| djoddg} n| dj o(x%| D]} | i| iƒƒqKWn|oyt i i t |i |ƒƒƒ}t i i|ƒptd|ƒ‚n| idƒti||d|d|fƒ} nti||d|fƒ} ti||ƒti||ƒ|idd||||fd tid d | |||f|||ifƒ|idd | fd td | |fƒ| oCx@| D]4} |idd | | fd t"d | | |fƒq©Wn|idd| fd t#d | fƒdS(Ntrendertupdates No such filet __getitem__ttemplatetbasest discriminatortviewletManagertcallabletargstregisterAdaptersfive:protectClasssfive:protectNamesfive:initialize:class($tclass_tNonetmanagertViewletManagerBasetallowed_attributestallowed_interfacet interfacetextendtnamesRtostpathtabspathtstrt_contexttisfiletConfigurationErrortappendtViewletManagertnametprovidest new_classtviewmetat _handle_fortfor_tzcmltviewtactiontlayerthandlertinfot protectClasst permissiontattrt protectNametinitializeClass(RRR)R!R%R#RR RRRRRR*((tB/data/zmath/zope/lib/python/Products/Five/viewlet/metaconfigure.pytviewletManagerDirectives@    ! % (Rc  s-|p|ptdƒ‚nˆdjo2|otdƒ‚n|ptdƒ‚q]n| djoddg} n| dj o(x%| D]}| i|i ƒƒqŽWn|oXt i i t |i |ƒƒƒ}t i i|ƒptd|ƒ‚n| idƒn|oνˆdjo$t|ˆƒptdƒ‚qFn|o"ti|d |fd | ƒ}not|d ƒphd ‡d †<}nh}||d <ˆ|d<|i| ƒt|i|tif|ƒ}t|dƒot|tƒqnti|d|d | ƒ}ti||ƒt!i||ƒ|i#dd|||||fdt!i&dd|||||ft'i(||i)fƒ|i#dd|fdt*d||fƒ| oCx@| D]4} |i#dd|| fdt-d|| |fƒqΘWn|i#dd|fdt.d|fƒdS(Ns Must specify a class or templateRs/Attribute and template cannot be used together.s-A class must be provided if attribute is usedRs No such fileRs8The provided class doesn't have the specified attribute Rt attributestbrowserDefaultcst|ˆƒffS(N(tgetattrtselft attribute(R2trequest(R3(R-t€st__name__t__page_attribute__t__implements__RRtviewletRRR sfive:protectClasssfive:protectNamesfive:initialize:class(/R RRR3RR RRRRRRRRRRRthasattrR9tSimpleViewletClasstkwargsRtcdictRRttypeR6tSimpleAttributeViewlettclassImplementstIBrowserPublisherRR R!R"R#R$R%R R&t interfacestIViewletR'R(R)R*R+R,(RRR)R!R%R#R R RR3RRR<R*RRR=((R3R-tviewletDirectiveMsj   ! "      .(Rtzope.app.publisher.browserRtzope.componentR"tzope.configuration.exceptionsRtzope.interfacet InterfaceR@t!zope.publisher.interfaces.browsert IBrowserViewtIDefaultBrowserLayert zope.viewletRBtGlobalstInitializeClassR,tProducts.Five.securityR(R+tProducts.Five.viewletR R9tIViewletManagerR R.RD(R.R9RKRRBR,RRLRDR R"R(RIR+RR@((R-t?s          $>