# HG changeset patch # User Luke Macken # Date 1301276131 14400 # Node ID 8522cbafdbbb575067c489cf2342bcbf91a1183d # Parent 5cbfa97aca2c3dab7bab8d44ade398a1e9022b13 Ensure our bool/int configuration options are the appropriate type. When configuring the TW2 middleware in a Paste Deploy ini config file, the options are then passed into the middleware as strings, which need to get converted. diff --git a/tw2/core/middleware.py b/tw2/core/middleware.py --- a/tw2/core/middleware.py +++ b/tw2/core/middleware.py @@ -1,10 +1,11 @@ import webob as wo, core, resources, template from pkg_resources import iter_entry_points, DistributionNotFound +from paste.deploy.converters import asbool, asint class Config(object): ''' ToscaWidgets Configuration Set `translator` The translator function to use. (default: no-op) @@ -90,16 +91,27 @@ class Config(object): preferred_rendering_engines = ['mako', 'genshi', 'cheetah', 'kid'] strict_engine_selection = True rendering_extension_lookup = {'mako':'mak', 'genshi':'html', 'cheetah':'tmpl', 'kid':'kid'} script_name = '' def __init__(self, **kw): for k, v in kw.items(): setattr(self, k, v) + + # Set boolean properties + for prop in ('inject_resources', 'serve_resources', 'serve_controllers', + 'params_as_vars', 'auto_reload_templates', + 'strict_engine_selection', 'debug'): + setattr(self, prop, asbool(getattr(self, prop))) + + # Set integer properties + for prop in ('res_max_age', 'bufsize'): + setattr(self, prop, asint(getattr(self, prop))) + if self.auto_reload_templates is None: self.auto_reload_templates = self.debug self.available_rendering_engines = {} for e in iter_entry_points("python.templating.engines"): if not self.strict_engine_selection or e.name in self.preferred_rendering_engines: try: self.available_rendering_engines[e.name] = e.load()