diff options
author | Tom Rondeau <trondeau@vt.edu> | 2013-03-01 12:08:34 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-03-01 12:08:34 -0500 |
commit | f26b3563614940347748c296d74b1071e9de4d2a (patch) | |
tree | 3b7c70d5a9b9034609005d7d46c90f62f9924cb2 /volk/python/volk_modtool/cfg.py | |
parent | ceb1c3496fd69cbff37a12e634c8baf7fc38f581 (diff) |
volk: modifying volk_modtool.
1. Better handling of initial config cases.
2. Don't over-write an existing directory when using -i.
Diffstat (limited to 'volk/python/volk_modtool/cfg.py')
-rw-r--r-- | volk/python/volk_modtool/cfg.py | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/volk/python/volk_modtool/cfg.py b/volk/python/volk_modtool/cfg.py index c5cfb919c0..c58dc59091 100644 --- a/volk/python/volk_modtool/cfg.py +++ b/volk/python/volk_modtool/cfg.py @@ -28,21 +28,41 @@ import re class volk_modtool_config: + def key_val_sub(self, num, stuff, section): + return re.sub('\$' + 'k' + str(num), stuff[num][0], (re.sub('\$' + str(num), stuff[num][1], section[1][num]))); + def verify(self): for i in self.verification: self.verify_section(i) - + def remap(self): + for i in self.remapification: + self.verify_section(i) + def verify_section(self, section): stuff = self.cfg.items(section[0]) for i in range(len(section[1])): - if not eval(re.sub('\$' + str(i), stuff[i][1], section[1][i])): + eval(self.key_val_sub(i, stuff, section)) + try: + val = eval(self.key_val_sub(i, stuff, section)) + if val == False: + raise exceptions.ValueError + except ValueError: + raise exceptions.ValueError('Verification function returns False... key:%s, val:%s'%(stuff[i][0], stuff[i][1])) + except: raise exceptions.IOError('bad configuration... key:%s, val:%s'%(stuff[i][0], stuff[i][1])) + def __init__(self, cfg=None): self.config_name = 'config' self.config_defaults = ['name', 'destination', 'base'] + self.config_defaults_remap = ['1', + 'self.cfg.set(self.config_name, \'$k1\', os.path.realpath(os.path.expanduser(\'$1\')))', + 'self.cfg.set(self.config_name, \'$k2\', os.path.realpath(os.path.expanduser(\'$2\')))'] + self.config_defaults_verify = ['re.match(\'[a-zA-Z0-9]+$\', \'$0\')', - 'os.path.exists(\'$1\')', 'os.path.exists(\'$2\')'] + 'os.path.exists(\'$1\')', + 'os.path.exists(\'$2\')'] + self.remapification = [(self.config_name, self.config_defaults_remap)] self.verification = [(self.config_name, self.config_defaults_verify)] default = os.path.join(os.getcwd(), 'volk_modtool.cfg') icfg = ConfigParser.RawConfigParser() @@ -57,7 +77,9 @@ class volk_modtool_config: rv = raw_input("%s: "%(kn)) icfg.set(self.config_name, kn, rv) self.cfg = icfg + self.remap() self.verify() + def read_map(self, name, inp): |