Exemple #1
0
 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)
Exemple #2
0
    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))