From e1357fd5c5ac82183679a649040fdbc11a3bb57a Mon Sep 17 00:00:00 2001 From: Garette Emmanuel Date: Tue, 12 Mar 2013 17:45:28 +0100 Subject: [PATCH] adds information attribute to an option --- tiramisu/option.py | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/tiramisu/option.py b/tiramisu/option.py index ed8277b..f46fd93 100644 --- a/tiramisu/option.py +++ b/tiramisu/option.py @@ -53,7 +53,29 @@ def valid_name(name): #____________________________________________________________ # -class Option(BaseType): +class BaseInformation: + informations = {} + + def set_information(self, key, value): + """updates the information's attribute + (wich is a dictionnary) + + :param key: information's key (ex: "help", "doc" + :param value: information's value (ex: "the help string") + """ + self.informations[key] = value + + def get_information(self, key): + """retrieves one information's item + + :param key: the item string (ex: "help") + """ + if key in self.informations: + return self.informations[key] + else: + raise ValueError("Information's item not found: {0}".format(key)) + +class Option(BaseType, BaseInformation): """ Abstract base class for configuration option's. @@ -87,7 +109,6 @@ class Option(BaseType): raise NameError("invalid name: {0} for option".format(name)) self._name = name self.doc = doc - self.informations = {} self._requires = requires self._mandatory = mandatory self.multi = multi @@ -195,25 +216,6 @@ class Option(BaseType): "accesses the Option's doc" return self.doc - def set_information(self, key, value): - """updates the information's attribute - (wich is a dictionnary) - - :param key: information's key (ex: "help", "doc" - :param value: information's value (ex: "the help string") - """ - self.informations[key] = value - - def get_information(self, key): - """retrieves one information's item - - :param key: the item string (ex: "help") - """ - if key in self.informations: - return self.informations[key] - else: - raise ValueError("Information's item not found: {0}".format(key)) - def getcallback(self): "a callback is only a link, the name of an external hook" return self.callback @@ -398,7 +400,7 @@ class NetmaskOption(Option): # by now the validation is nothing but a string, use IPy instead return isinstance(value, str) -class OptionDescription(BaseType): +class OptionDescription(BaseType, BaseInformation): """Config's schema (organisation, group) and container of Options""" # the group_type is useful for filtering OptionDescriptions in a config group_type = groups.default