diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2016-11-30 15:39:36 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2016-11-30 21:19:44 -0500 |
commit | 57244de37d6b4e2247c09803d06728daacfdaa48 (patch) | |
tree | 5aae98f1b2abd9cc924c3f99d8cdb6e2a7bb17e2 /klippy/klippy.py | |
parent | 3806ed882a262b2001d672c0829280c63d1628d6 (diff) | |
download | kutter-57244de37d6b4e2247c09803d06728daacfdaa48.tar.gz kutter-57244de37d6b4e2247c09803d06728daacfdaa48.tar.xz kutter-57244de37d6b4e2247c09803d06728daacfdaa48.zip |
klippy: Throw an exception if any required config parameter is missing
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/klippy.py')
-rw-r--r-- | klippy/klippy.py | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/klippy/klippy.py b/klippy/klippy.py index 849c5b8b..bf63d01d 100644 --- a/klippy/klippy.py +++ b/klippy/klippy.py @@ -35,25 +35,32 @@ Printer is shutdown class ConfigWrapper: error = ConfigParser.Error + class sentinel: + pass def __init__(self, printer, section): self.printer = printer self.section = section - def get(self, option, default=None): - if not self.printer.fileconfig.has_option(self.section, option): + def get_wrapper(self, parser, option, default): + if (default is not self.sentinel + and not self.printer.fileconfig.has_option(self.section, option)): return default - return self.printer.fileconfig.get(self.section, option) - def getint(self, option, default=None): - if not self.printer.fileconfig.has_option(self.section, option): - return default - return self.printer.fileconfig.getint(self.section, option) - def getfloat(self, option, default=None): - if not self.printer.fileconfig.has_option(self.section, option): - return default - return self.printer.fileconfig.getfloat(self.section, option) - def getboolean(self, option, default=None): - if not self.printer.fileconfig.has_option(self.section, option): - return default - return self.printer.fileconfig.getboolean(self.section, option) + try: + return parser(self.section, option) + except self.error, e: + raise + except: + raise self.error("Unable to parse option '%s' in section '%s'" % ( + option, self.section)) + def get(self, option, default=sentinel): + return self.get_wrapper(self.printer.fileconfig.get, option, default) + def getint(self, option, default=sentinel): + return self.get_wrapper(self.printer.fileconfig.getint, option, default) + def getfloat(self, option, default=sentinel): + return self.get_wrapper( + self.printer.fileconfig.getfloat, option, default) + def getboolean(self, option, default=sentinel): + return self.get_wrapper( + self.printer.fileconfig.getboolean, option, default) def getsection(self, section): return ConfigWrapper(self.printer, section) |