Make sure all instance attributes are defined in __init__ methods.

Also play with named arguments that don't define a default value (**kwargs)
This commit is contained in:
Ferdi Franceschini
2014-07-06 12:03:19 +10:00
parent a5ea730343
commit 82268ecc2e

View File

@ -198,6 +198,8 @@ class InstConfigData:
msg_index = 4
def __init__(self):
self.file_parser = ConfigParser.SafeConfigParser()
self.config_filename = 'sics_config.ini'
#configuration_dict: dict of instrument configurations as defined below,
# {configname: {'enabled':T/F, 'cascade_list':[(option, dflt_imp)]} }
self.configuration_dict = defaultdict(dict)
@ -287,11 +289,11 @@ class InstConfigData:
print 'Add imp2opt_dict[{0}] = none'.format(sect)
self.imp2opt_dict[sect] = 'none'
def read_config_file(self, config_filename):
def read_config_file(self, **kwargs):
""" Load and parse a sics_config.ini file """
self.config_filename = config_filename
self.file_parser = ConfigParser.SafeConfigParser()
self.file_parser.read(config_filename)
if 'config_filename' in kwargs:
self.config_filename = kwargs['config_filename']
self.file_parser.read(self.config_filename)
self.__get_options()
self.__get_implementations()
self.__get_configurations()
@ -317,7 +319,8 @@ class InstConfigData:
enabled = opt_desc['enabled'].__str__()
self.file_parser.set(opt, 'enabled', enabled)
self.file_parser.set(opt, 'implementation', opt_desc['selected_imp'])
self.file_parser.set(opt, 'implementation',
opt_desc['selected_imp'])
self.file_parser.set(opt, 'optype', opt_desc['imptype'])
for config, config_desc in self.configuration_dict.iteritems():
@ -593,7 +596,7 @@ def main(config_ini):
# Make configuration data
cf_dat = InstConfigData()
cf_dat.read_config_file(config_ini)
cf_dat.read_config_file(config_filename = config_ini)
# Make configuration editor
cf_man = InstConfigManager(cf_dat)