+ def items(self, section, *args, **kwargs):
+ """Return a list of tuples with (name, value) for each option
+ in the section.
+ """
+ # Can't use super() because RawConfigParser is a classic class
+ #return super(HookeConfigParser, self).items(section, *args, **kwargs)
+ items = configparser.RawConfigParser.items(
+ self, section, *args, **kwargs)
+ for i,kv in enumerate(items):
+ key,value = kv
+ log = logging.getLogger('hooke')
+ try:
+ setting = self._default_settings_dict[(section, key)]
+ except KeyError, e:
+ log.error('unknown setting %s/%s: %s' % (section, key, e))
+ raise
+ try:
+ items[i] = (key, from_string(value=value, type=setting.type,
+ count=setting.count))
+ except ValueError, e:
+ log.error("could not convert '%s' (%s) for %s/%s: %s"
+ % (value, type(value), section, key, e))
+ raise
+ return items
+
+ def set(self, section, option, value):
+ """Set an option."""
+ setting = self._default_settings_dict[(section, option)]
+ value = to_string(value=value, type=setting.type, count=setting.count)
+ # Can't use super() because RawConfigParser is a classic class
+ #return super(HookeConfigParser, self).set(section, option, value)
+ configparser.RawConfigParser.set(self, section, option, value)
+
+ def optionxform(self, option):
+ """
+
+ Overrides lowercasing behaviour of
+ :meth:`ConfigParser.RawConfigParser.optionxform`.
+ """
+ return option
+
+