better raise message if try to launch impl_get_information/impl_set_information in uncompatible class

This commit is contained in:
Emmanuel Garette 2013-06-14 17:52:57 +02:00
parent 23f6d2228f
commit 3c0629e6a9
1 changed files with 15 additions and 7 deletions

View File

@ -64,19 +64,27 @@ class BaseInformation(object):
:param key: information's key (ex: "help", "doc" :param key: information's key (ex: "help", "doc"
:param value: information's value (ex: "the help string") :param value: information's value (ex: "the help string")
""" """
try:
self._impl_informations[key] = value self._impl_informations[key] = value
except AttributeError:
raise AttributeError(_('{0} instance has no attribute '
'impl_set_information').format(self.__class__.__name__))
def impl_get_information(self, key, default=None): def impl_get_information(self, key, default=None):
"""retrieves one information's item """retrieves one information's item
:param key: the item string (ex: "help") :param key: the item string (ex: "help")
""" """
try:
if key in self._impl_informations: if key in self._impl_informations:
return self._impl_informations[key] return self._impl_informations[key]
elif default is not None: elif default is not None:
return default return default
else: else:
raise ValueError(_("Information's item not found: {0}").format(key)) raise ValueError(_("Information's item not found: {0}").format(key))
except AttributeError:
raise AttributeError(_('{0} instance has no attribute '
'impl_get_information').format(self.__class__.__name__))
class Option(BaseInformation): class Option(BaseInformation):