def __setitem__(self, key, value): if key in self: ovalue = self[key] cast = utils.smart_cast(ovalue) else: ovalue = "(none)" cast = utils.smart_cast(value) value = cast(value) logging.debug("config: %s: %s -> %s", key, ovalue, value) dict.__setitem__(self, key, value)
def merge_kv(self, t, dry=False): if t: key, value = t if not dry: self.conf[key] = value else: try: ovalue = self.conf[key] cast = utils.smart_cast(ovalue) cast(value) except KeyError: raise ConfigError("No such property: %s" % key) except TypeError: raise ConfigError("Old value '%s' for property '%s'" " has the wrong type" % (ovalue, key)) except ValueError: raise ConfigError("Invalid value '%s' for property '%s'" % (value, key))