diff --git a/lib/objects.py b/lib/objects.py index aebe95960a8a2f12ec40d1cedad301b7b60e544d..15840f930bd0c671b0036f2070833ca81ceda67e 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__: @@ -157,6 +158,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.