Ñò Tã·Jc @sÎddklZddkZddklZddkZddklZddkl Z ddk l Z ddk l Z dd gZdefd „ƒYZeZd „Zhd „Zd „Zdd„ZdS(iÿÿÿÿ(tunquoteN(tRequest(tbase(t resources(tasbool(t always_denytToscaWidgetsMiddlewaretmake_middlewarecBs;eZdZdeeeded„Zd„Zd„Z RS(sú This WSGI middleware piece takes care of creating a per-request context for ToscaWidgets and injecting resource links into html responses. It can also take care of serving those resources if `serve_resources` is True (default). s /toscawidgetsc Cs‚||_||_||i_||_||_||_||_||_|io)ddkl } | |i|ƒ|_ndS(Niÿÿÿÿ(tinjector_middleware( tcallback_security_defaultthost_frameworkt middlewaretprefixtserve_resourcestinject_resourcest require_oncet applicationttw.core.resource_injectorR( tselfRR R RR Rt render_filterR R((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyt__init__s         cCs|i||ƒS(N(twsgi_app(Rtenvirontstart_response((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyt__call__*scCsi|ii|ƒ|diti|iƒ|i|d<|id|iƒ|id|iƒt|ƒ}zè|i ti_ |i o¬|i i |iƒo–|i t |iƒ|_ |i |i7_ ti}|i i |iƒoH|i t |iƒ|_ |i |i7_ |i|ƒ}|||ƒSn|i|iƒ}|||ƒSWd|ii|ƒXdS(Nspaste.registrystoscawidgets.prefixstoscawidgets.frameworks$toscawidgets.javascript.require_once(R t start_requesttregisterttwt frameworkR t setdefaultRRt script_nameR t path_infot startswithtlenRtregistryt get_responseRt end_request(RRRtreqt resources_apptresp((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyR-s(    N( t__name__t __module__t__doc__tTruetFalsetNoneRRRR(((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyRs   cCs3x,tidƒD]}|i|jo|SqWdS(Nstoscawidgets.host_frameworks(t pkg_resourcestiter_entry_pointstname(R0tep((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyt_load_from_entry_pointLscs>tˆƒ‰d„‰t‡‡‡‡fd†|iƒDƒƒS(NcSs|S(((tv((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pytSsc3sSxL|]E\}}|iˆƒo)|ˆˆi|ˆˆƒ|ƒfVqqWdS(N(R tget(t.0tkR3(tnoptlR tadapters(s6/usr/lib/python2.6/site-packages/tw/core/middleware.pys Ts (R!tdictt iteritems(targsR R:((R:R9R R8s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyt _extract_argsQs  cCsrd|jot|ƒ}ntiid|ƒ}|o|itƒ}nd}|ptd|ƒ‚n|S(Nt:shf=sCould not load %s(R2R.t EntryPointtparsetloadR,R-t LookupError(R R1thf((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyt_load_host_frameworkWs cKsä|phiƒ}|i|ƒ|iddƒ}t|tƒot|ƒ}nt|dhtd6td6td6ƒ}t|dhtd6ƒ}t|d |||}|i d t ƒo d d k l }||ƒ}n|S( sÊ Initializes :class:`tw.core.middleware.ToscaWidgetsMiddleware` and a :class:`tw.mods.base.HostFramework` and wraps the WSGI application ``app`` with it. Configuration can be passed in a dict as the ``config`` parameter. **Available options:** toscawidgets.middleware.* These parameters will be passed to :class:`tw.core.middleware.ToscaWidgetsMiddleware` when instatntiating it. See its docstrings for details. toscawidgets.framework Name of the ``toscawidgets.host_frameworks`` entry point or :class:`tw.mods.base.HostFramework` subclass which shall interface with the framework. ``wsgi``, ``pylons`` are available. Default is ``wsgi`` toscawidgets.framework.* Parameters for the :class:`tw.modes.base.HostFramework`. See their respective docstrings for accepted parameters. This is the ToscaWidgets#middleware paste.filter_app_factory entrypoint. stoscawidgets.frameworktwsgistoscawidgets.middleware.RR Rstoscawidgets.framework.tenable_runtime_checksR tstack_registryiÿÿÿÿ(tRegistryManager( tcopytupdatetpopt isinstancet basestringRER>RRR5R,ttw.core.registryRI(tapptconfigtkwR tmiddleware_argsthf_argsRI((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyRds"      (turllibRR.twebobRRttw.modsRttw.coreRt tw.core.utilRttw.core.serverRt__all__tobjectRtTGWidgetsMiddlewareR2R>RER-R(((s6/usr/lib/python2.6/site-packages/tw/core/middleware.pyts   ;