# HG changeset patch # User Jeff Hammel # Date 1321571893 28800 # Node ID a3a7ac9102dc2c27fe4f4bcc30acfc9964937f10 # Parent 67dd8e0aa6da6434b88334cd0fbd115bd766ed28 better choosing of types diff -r 67dd8e0aa6da -r a3a7ac9102dc bitsyblog/bitsyblog.py --- a/bitsyblog/bitsyblog.py Thu Nov 17 15:03:19 2011 -0800 +++ b/bitsyblog/bitsyblog.py Thu Nov 17 15:18:13 2011 -0800 @@ -50,7 +50,7 @@ 'site_name': 'bitsyblog', # name of the site (needed?) 'header': None, # text to insert as first child of body' 'template_directories': '', # space separated template_directories - 'auto_reload': 'True', # reload the genshi templates + 'auto_reload': True, # reload the genshi templates 'help_file': None, # help to display 'feed_items': 10, # number of RSS/atom items to display 'post_handlers': '' # post handlers @@ -59,8 +59,20 @@ cooked_bodies = {} def __init__(self, kw, handler_args): - for key in self.defaults: - setattr(self, key, kw.get(key, self.defaults[key])) + + # set values from defaults and kw + for key, value in self.defaults.items(): + kw_value = kw.get(key, value) + + # convert kw_value to the proper type + _type = type(value) + if isinstance(kw_value, basestring) and not issubclass(_type, basestring) and value is not None: + if _type == bool: + kw_value = kw_value.lower() == 'true' + else: + kw_value = _type(kw_value) + setattr(self, key, kw_value) + self.n_links = int(self.n_links) # could be a string from the .ini self.response_functions = {'GET': self.get, 'POST': self.post, @@ -76,7 +88,6 @@ self.feed_items = int(self.feed_items) # template renderer - self.auto_reload = self.auto_reload.lower()=='true' self.template_directories = self.template_directories.split() # no spaces in directory names, for now for directory in self.template_directories: