From 1de236d2a864560cb91cdc6dcd0d9d167663418e Mon Sep 17 00:00:00 2001 From: gwen Date: Thu, 8 Nov 2012 09:57:29 +0100 Subject: [PATCH] at_index to check owners --- tiramisu/option.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tiramisu/option.py b/tiramisu/option.py index da0b49e..2af9de0 100644 --- a/tiramisu/option.py +++ b/tiramisu/option.py @@ -220,17 +220,21 @@ class Option(HiddenBaseType, DisabledBaseType): "config *must* be only the **parent** config (not the toplevel config)" return config._cfgimpl_value_owners[self._name] - def is_default_owner(self, config, all_default=True): + def is_default_owner(self, config, all_default=True, at_index=None): """ :param config: *must* be only the **parent** config (not the toplevel config) :param all_default: only for multi options, if True and the owner list has something else than "default" returns False, if False and the owner list has at least one "default" owner, returns True + :param at_index: only for multi options, checks owner at specified + index :return: boolean """ if self.is_multi(): owners = self.getowner(config) + if at_index: + return owners[at_index] == 'default' for owner in owners: if all_default and owner != 'default': return False @@ -241,9 +245,9 @@ class Option(HiddenBaseType, DisabledBaseType): else: return False else: - if self.getowner(config) == 'default': - return True - return False + if at_index: + raise ValueError('index specified for a not multi option') + return self.getowner(config) == 'default' def setoption(self, config, value, who): """changes the option's value with the value_owner's who