aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2012-12-19 16:39:43 +0100
committerDavid Sommerseth <davids@redhat.com>2012-12-19 16:39:43 +0100
commit9332c914f6bae11c3a244cec4ecb06fbe6f17f4b (patch)
treed245fddffb477b011205dd2d262a2e57c71297f6
parent3db08cc6dcfb3ef44d3a64024de0db408f9dcf0e (diff)
downloadrteval-9332c914f6bae11c3a244cec4ecb06fbe6f17f4b.tar.gz
Use default values from config file when setting up modules' option parser
Try to grab the values from the config file instead of the defaults from the module, if it is present. Signed-off-by: David Sommerseth <davids@redhat.com>
-rwxr-xr-xrteval-cmd2
-rw-r--r--rteval/modules/__init__.py26
-rw-r--r--rteval/modules/measurement/__init__.py2
3 files changed, 23 insertions, 7 deletions
diff --git a/rteval-cmd b/rteval-cmd
index 9708e10..b1b4333 100755
--- a/rteval-cmd
+++ b/rteval-cmd
@@ -231,7 +231,7 @@ if __name__ == '__main__':
# parse command line options
parser = optparse.OptionParser()
- loadmods.SetupModuleOptions(parser)
+ loadmods.SetupModuleOptions(parser, config)
measuremods.SetupModuleOptions(parser)
cmd_args = parse_options(config, parser, sys.argv[1:])
diff --git a/rteval/modules/__init__.py b/rteval/modules/__init__.py
index f1d964b..d4a06d5 100644
--- a/rteval/modules/__init__.py
+++ b/rteval/modules/__init__.py
@@ -216,7 +216,7 @@ the information provided by the module"""
return mod.ModuleInfo()
- def SetupModuleOptions(self, parser):
+ def SetupModuleOptions(self, parser, config):
"""Sets up a separate optptarse OptionGroup per module with its supported parameters"""
for (modname, mod) in self.__modsloaded.items():
@@ -225,16 +225,32 @@ the information provided by the module"""
continue
shortmod = modname.split('.')[-1]
+ try:
+ cfg = config.GetSection(shortmod)
+ except KeyError:
+ # Ignore if a section is not found
+ cfg = None
+
grparser = optparse.OptionGroup(parser, "Options for the %s module" % shortmod)
for (o, s) in opts.items():
descr = s.has_key('descr') and s['descr'] or ""
- default = s.has_key('default') and s['default'] or None
metavar = s.has_key('metavar') and s['metavar'] or None
+
+ try:
+ default = cfg and getattr(cfg, o) or None
+ except AttributeError:
+ # Ignore if this isn't found in the configuration object
+ default = None
+
+ if default is None:
+ default = s.has_key('default') and s['default'] or None
+
+
grparser.add_option('--%s-%s' % (shortmod, o),
dest="%s___%s" % (shortmod, o),
action='store',
help='%s%s' % (descr,
- default and '(default: %s)' % default or ''),
+ default and ' (default: %s)' % default or ''),
default=default,
metavar=metavar)
parser.add_option_group(grparser)
@@ -349,9 +365,9 @@ and will also be given to the instantiated objects during module import."""
"Returns a list of module names"
return self.__modules.GetModulesList()
- def SetupModuleOptions(self, parser):
+ def SetupModuleOptions(self, parser, config):
"Sets up optparse based option groups for the loaded modules"
- return self.__modules.SetupModuleOptions(parser)
+ return self.__modules.SetupModuleOptions(parser, config)
def GetNamedModuleObject(self, modname):
"Returns a list of module names"
diff --git a/rteval/modules/measurement/__init__.py b/rteval/modules/measurement/__init__.py
index 1298932..90345ad 100644
--- a/rteval/modules/measurement/__init__.py
+++ b/rteval/modules/measurement/__init__.py
@@ -146,7 +146,7 @@ measurement profiles, based on their characteristics"""
def SetupModuleOptions(self, parser):
"Sets up all the measurement modules' parameters for the option parser"
- self.__container.SetupModuleOptions(parser)
+ self.__container.SetupModuleOptions(parser, self.__cfg)
def Setup(self, modparams):