Mercurial > hg > decoupage
diff decoupage/web.py @ 84:95820b36d7e3
cli client
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Sat, 28 Dec 2013 18:12:16 -0800 |
parents | 8596a1d97740 |
children | 3262010f7f79 |
line wrap: on
line diff
--- a/decoupage/web.py Sun Dec 15 12:38:24 2013 -0800 +++ b/decoupage/web.py Sat Dec 28 18:12:16 2013 -0800 @@ -30,13 +30,15 @@ transformers = transformers() +string = (str, unicode) + class Decoupage(object): ### class level variables - defaults = { 'auto_reload': 'False', + defaults = { 'auto_reload': False, 'configuration': None, 'directory': None, # directory to serve - 'cascade': 'True', # whether to cascade configuration + 'cascade': True, # whether to cascade configuration 'template': 'index.html', # XXX see below 'template_directories': '', # list of directories to look for templates 'charset': 'utf-8', # content encoding for index.html files; -> `Content-Type: text/html; charset=ISO-8859-1` @@ -45,13 +47,21 @@ def __init__(self, **kw): # set defaults from app configuration - for key in self.defaults: - setattr(self, key, kw.get(key, self.defaults[key])) + for key, default_value in self.defaults.items(): + + value = kw.get(key, default_value) + + # handle non-string bools + if isinstance(default_value, bool) and isinstance(value, string): + value = {'true': True, + 'false': False}[value.lower()] + # TODO: error handling for bad strings + + setattr(self, key, value) + # configure defaults assert self.directory, "Decoupage: directory not specified" - self.auto_reload = self.auto_reload.lower() == 'true' - self.cascade = self.cascade.lower() == 'true' self.directory = self.directory.rstrip(os.path.sep) assert os.path.isdir(self.directory), "'%s' is not a directory" % self.directory self.template_directories = self.template_directories.split() # no spaces in directory names, for now