diff src/tools/config.py @ 1235:80d2ed788b40

core (config): added the Exception default value which raise an exception instead of returning the default in getConfig
author Goffi <goffi@goffi.org>
date Sat, 11 Oct 2014 16:26:43 +0200
parents 9c17bd37e6e5
children 251ae99a6c0e
line wrap: on
line diff
--- a/src/tools/config.py	Tue Oct 07 17:12:41 2014 +0200
+++ b/src/tools/config.py	Sat Oct 11 16:26:43 2014 +0200
@@ -73,15 +73,19 @@
     @param config (SafeConfigParser): the configuration instance
     @param section (str): section of the config file (None or '' for DEFAULT)
     @param name (str): name of the option
-    @param default: value to use if not found
+    @param default: value to use if not found, or Exception to raise an exception
     @return: str, list or dict
+    @raise: NoOptionError if option is not present and default is Exception
+            NoSectionError if section doesn't exists and default is Exception
     """
     if not section:
         section = DEFAULTSECT
 
     try:
         value = config.get(section, name)
-    except (NoOptionError, NoSectionError):
+    except (NoOptionError, NoSectionError) as e:
+        if default is Exception:
+            raise e
         return default
 
     if name.endswith('_path') or name.endswith('_dir'):