# HG changeset patch # User Pascal Volk # Date 1266031242 0 # Node ID 83938336c5183b86602664b7ae60f7e8854f6fad # Parent 4d601240b7db6dfc44e6758cbc1a4eab368592c4 VMM/{,cli/}Config: fixed imports. Small code cleanups and cosmetic. diff -r 4d601240b7db -r 83938336c518 VirtualMailManager/Config.py --- a/VirtualMailManager/Config.py Fri Feb 12 09:10:54 2010 +0000 +++ b/VirtualMailManager/Config.py Sat Feb 13 03:20:42 2010 +0000 @@ -36,7 +36,6 @@ """ -from shutil import copy2 from ConfigParser import \ Error, MissingSectionHeaderError, NoOptionError, NoSectionError, \ ParsingError, RawConfigParser @@ -61,8 +60,8 @@ """Raised when the requested option has no default value.""" def __init__(self, section, option): - Error.__init__(self, 'Option %r in section %r has no default value' %( - option, section)) + Error.__init__(self, 'Option %r in section %r has no default value' % + (option, section)) class LazyConfig(RawConfigParser): @@ -84,6 +83,7 @@ combined to a single string in the form "``section``\ **.**\ ``option``". """ + def __init__(self): RawConfigParser.__init__(self) self._modified = False @@ -107,16 +107,16 @@ if value.lower() in self._boolean_states: return self._boolean_states[value.lower()] else: - raise ConfigValueError(_(u'Not a boolean: “%s”') % + raise ConfigValueError(_(u"Not a boolean: '%s'") % get_unicode(value)) def get_boolean(self, section, option): # if the setting was not written to the configuration file, it may # be still a boolean value - lets see if self._modified: - tmp = self.get(section, option) - assert isinstance(tmp, bool), 'Oops, not a boolean: %r' % tmp - return tmp + tmp = self.get(section, option) + assert isinstance(tmp, bool), 'Oops, not a boolean: %r' % tmp + return tmp return self.getboolean(section, option) def _get_section_option(self, section_option): @@ -137,8 +137,8 @@ # TODO: cache it if len(sect_opt) != 2:# do we need a regexp to check the format? raise BadOptionError( - _(u'Bad format: “%s” - expected: section.option') % - get_unicode(section_option)) + _(u"Bad format: '%s' - expected: section.option") % + get_unicode(section_option)) if not sect_opt[0] in self._cfg: raise NoSectionError(sect_opt[0]) if not sect_opt[1] in self._cfg[sect_opt[0]]: @@ -159,7 +159,8 @@ d = dict((k, self._cfg[section][k].default) \ for k in self._cfg[section].iterkeys()) d.update(d2) - if '__name__' in d: del d['__name__'] + if '__name__' in d: + del d['__name__'] return d.iteritems() def dget(self, option): diff -r 4d601240b7db -r 83938336c518 VirtualMailManager/cli/Config.py --- a/VirtualMailManager/cli/Config.py Fri Feb 12 09:10:54 2010 +0000 +++ b/VirtualMailManager/cli/Config.py Sat Feb 13 03:20:42 2010 +0000 @@ -8,16 +8,21 @@ Adds some interactive stuff to the Config class. """ +from shutil import copy2 + from VirtualMailManager import ENCODING -from VirtualMailManager.Config import Config +from VirtualMailManager.Config import Config, ConfigValueError, LazyConfig +from VirtualMailManager.Exceptions import VMMConfigException from VirtualMailManager.cli import w_std from VirtualMailManager.constants.ERROR import VMM_TOO_MANY_FAILURES + class CliConfig(Config): """Adds the interactive ``configure`` method to the `Config` class and overwrites `LazyConfig.set(), in order to update a single option in the configuration file with a single command line command. """ + def configure(self, sections): """Interactive method for configuring all options of the given iterable ``sections`` object.""" @@ -27,15 +32,15 @@ w_std(_(u'Using configuration file: %s\n') % self._cfgFileName) for s in sections: - w_std(_(u'* Configuration section: “%s”') % s ) + w_std(_(u'* Configuration section: %r') % s) for opt, val in self.items(s): failures = 0 while True: - newval = raw_input(input_fmt.encode(ENCODING,'replace') %{ - 'option': opt, 'current_value': val}) + newval = raw_input(input_fmt.encode(ENCODING, 'replace') % + {'option': opt, 'current_value': val}) if newval and newval != val: try: - LazyConfig.set('%s.%s' % (s, opt), newval) + LazyConfig.set(self, '%s.%s' % (s, opt), newval) break except (ValueError, ConfigValueError), e: w_std(_(u'Warning: %s') % e) @@ -43,7 +48,7 @@ if failures > 2: raise VMMConfigException( _(u'Too many failures - try again later.'), - VMM_TOO_MANY_FAILURES) + VMM_TOO_MANY_FAILURES) else: break print @@ -60,7 +65,7 @@ ``LazyConfigOption.cls``""" section, option_ = self._get_section_option(option) val = self._cfg[section][option_].cls(value) - if not self._cfg[section][option_].validate is None: + if self._cfg[section][option_].validate: val = self._cfg[section][option_].validate(val) # Do not write default values also skip identical values if not self._cfg[section][option_].default is None: @@ -76,7 +81,7 @@ def __saveChanges(self): """Writes changes to the configuration file.""" - copy2(self._cfgFileName, self._cfgFileName+'.bak') + copy2(self._cfgFileName, self._cfgFileName + '.bak') self._cfgFile = open(self._cfgFileName, 'w') self.write(self._cfgFile) self._cfgFile.close()