[z3-checkins] r52149 - z3/deliverance/branches/urienv/deliverance
tseaver at codespeak.net
tseaver at codespeak.net
Tue Mar 4 16:56:24 CET 2008
Author: tseaver
Date: Tue Mar 4 16:56:24 2008
New Revision: 52149
Modified:
z3/deliverance/branches/urienv/deliverance/wsgimiddleware.py
Log:
Expose all DelieranceMiddleware ctor args to Paste config.
- Incorporates Reinout van Rees' 'always_external' feature, with a
slightly more general spelling.
Modified: z3/deliverance/branches/urienv/deliverance/wsgimiddleware.py
==============================================================================
--- z3/deliverance/branches/urienv/deliverance/wsgimiddleware.py (original)
+++ z3/deliverance/branches/urienv/deliverance/wsgimiddleware.py Tue Mar 4 16:56:24 2008
@@ -13,11 +13,13 @@
from paste.request import construct_url
from paste.response import header_value, replace_header
from htmlserialize import tostring
+from deliverance.utils import bool_from_string
from deliverance.utils import DeliveranceError
from deliverance.utils import DELIVERANCE_ERROR_PAGE
from deliverance.utils import get_theme_uri
from deliverance.utils import get_rule_uri
from deliverance.utils import get_serializer
+from deliverance.utils import resolve_callable
from deliverance.resource_fetcher import InternalResourceFetcher, FileResourceFetcher, ExternalResourceFetcher
from deliverance import cache_utils
import sys
@@ -75,7 +77,7 @@
self.app = app
self.theme_uri = theme_uri
self.rule_uri = rule_uri
- self.merge_cache_control = merge_cache_control
+ self.merge_cache_control = bool_from_string(merge_cache_control)
if renderer == 'py':
import interpreter
@@ -88,7 +90,7 @@
else:
self._rendererType = renderer
- self._is_internal_uri = is_internal_uri
+ self._is_internal_uri = resolve_callable(is_internal_uri)
if serializer is None:
serializer = _toHTML
self.serializer = serializer
@@ -521,14 +523,37 @@
# blacklisting can happen here as well
return re.match(IGNORE_URL_PATTERN, url) is not None
+
+def always_external(uri, environ):
+ """Always return False so the external loader is used.
+
+ o Configure in paste config using the following:
+
+ is_internal_uri = deliverance.wsgimiddleware:always_external
+ """
+ return False
+
+
def make_filter(app, global_conf,
- theme_uri=None, rule_uri=None,
- renderer='py', serializer=None):
+ theme_uri=None,
+ rule_uri=None,
+ renderer='py',
+ merge_cache_control=False,
+ is_internal_uri=None,
+ serializer=None,
+ ):
+ """ Configure DeliveranceError via Paste config.
+ """
assert theme_uri is not None, (
"You must give a theme_uri")
assert rule_uri is not None, (
"You must give a rule_uri")
- return DeliveranceMiddleware(
- app, theme_uri, rule_uri,
- renderer=renderer, serializer=serializer)
+ return DeliveranceMiddleware(app=app,
+ theme_uri=theme_uri,
+ rule_uri=rule_uri,
+ renderer=renderer,
+ merge_cache_control=merge_cache_control,
+ is_internal_uri=is_internal_uri,
+ serializer=serializer,
+ )
More information about the z3-checkins
mailing list