Ñò DQ“Ic@sÇdZddkZddkZdadaddddgZd„Zdefd„ƒYZ e ƒZ defd „ƒYZ d „Z e iZ defd „ƒYZd eddd „Zeie_dS(s*Paste Configuration Middleware and ObjectsiÿÿÿÿNtDispatchingConfigtCONFIGtConfigMiddlewaretPrefixMiddlewarecCsly tiSWnZtj o.ddklatƒaht_}|Stj oht_}|SXdS(Niÿÿÿÿ(tlocal(t config_localt wsgi_dictt NameErrort paste.deploy.util.threadinglocalRtAttributeError(tresult((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyt local_dict s    cBsƒeZdZeiƒZd„Zd„Zd d„Z d„Z d„Z d d„Z d„Z d„Zd „Zd „Zd „ZRS( s This is a configuration object that can be used globally, imported, have references held onto. The configuration may differ by thread (or may not). Specific configurations are registered (and deregistered) either for the process or for threads. cCsx|iiƒzMd|_x=d|i|_tƒi|iƒpPn|id7_qWd|iiƒXg|_dS(Nispaste.processconfig_%ii(t_constructor_locktacquiretdispatching_idt _local_keyR thas_keytreleaset_process_configs(tself((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyt__init__*s  cCs#tƒi|igƒi|ƒdS(sŸ Make ``conf`` the active configuration for this thread. Thread-local configuration always overrides process-wide configuration. This should be used like:: conf = make_conf() dispatching_config.push_thread_config(conf) try: ... do stuff ... finally: dispatching_config.pop_thread_config(conf) N(R t setdefaultRtappend(Rtconf((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pytpush_thread_config7scCs|itƒ|i|ƒdS(s¹ Remove a thread-local configuration. If ``conf`` is given, it is checked against the popped configuration and an error is emitted if they don't match. N(t _pop_fromR R(RR((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pytpop_thread_configHscCsD|iƒ}|dj o'||j otd||fƒ‚ndS(NsBThe config popped (%s) is not the same as the config expected (%s)(tpoptNonetAssertionError(RtlstRtpopped((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyRPs  cCs|ii|ƒdS(sg Like push_thread_config, but applies the configuration to the entire process. N(RR(RR((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pytpush_process_configXscCs|i|i|ƒdS(N(RR(RR((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pytpop_process_config_scCs6|iƒ}|djotdƒ‚nt||ƒS(Ns?No configuration has been registered for this process or thread(t current_confRR tgetattr(RtattrR((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyt __getattr__bs    cCsCtƒi|iƒ}|o |dS|io |idSdSdS(Niÿÿÿÿ(R tgetRRR(Rtthread_configs((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyR"js    cCs1|iƒ}|djotdƒ‚n||S(Ns?No configuration has been registered for this process or thread(R"Rt TypeError(RtkeyR((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyt __getitem__ss    cCs |i|ƒS(N(R(RR)((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyt __contains__|scCs|iƒ}|||ddkl}||ƒ}t|d|d|d|d|ƒS(Niÿÿÿÿ(tasboolRMRNRRRS(tpaste.deploy.convertersRlR(RGRHRMRNRRRSRl((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pytmake_prefix_middlewares   (R0R1RORR6Rt__all__R tobjectRRRRJtmake_config_middlewareRRkRn(((s7/usr/lib/python2.6/site-packages/paste/deploy/config.pyts    l 2  `