#!/usr/local/bin/python from ConfigParser import * class config_parser(SafeConfigParser): """ A SafeConfig parser with a more forgiving get attribute """ def safe_get(self, sect, opt, method, default=None): """ If the option is present, return it, otherwise the default. """ if self.has_option(sect, opt): return method(self, sect, opt) else: return default def get(self, sect, opt, default=None): """ This returns the requested option or a given default. It's more like getattr than get. """ return self.safe_get(sect, opt, SafeConfigParser.get, default) def getint(self, sect, opt, default=0): """ Returns the selected option as an int or a default. """ return self.safe_get(sect, opt, SafeConfigParser.getint, default) def getfloat(self, sect, opt, default=0.0): """ Returns the selected option as an int or a default. """ return self.safe_get(sect, opt, SafeConfigParser.getfloat, default) def getboolean(self, sect, opt, default=False): """ Returns the selected option as a boolean or a default. """ return self.safe_get(sect, opt, SafeConfigParser.getboolean, default)