diff --git a/lib/objects.py b/lib/objects.py index acb24d84b6c6f0654dfc045668b35af5df012052..23bb0f9776b96f4bc97212a56610752a2cb54917 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -58,6 +58,7 @@ class ConfigObject(object): def __init__(self, **kwargs): for k, v in kwargs.iteritems(): setattr(self, k, v) + self.UpgradeConfig() def __getattr__(self, name): if name not in self.__slots__: @@ -165,6 +166,15 @@ class ConfigObject(object): """Implement __repr__ for ConfigObjects.""" return repr(self.ToDict()) + def UpgradeConfig(self): + """Fill defaults for missing configuration values. + + This method will be called at object init time, and its implementation will + be object dependent. + + """ + pass + class TaggableObject(ConfigObject): """An generic class supporting tags.