diff --git a/weboob/tools/application/base.py b/weboob/tools/application/base.py index 0127c983..5e69b0f2 100644 --- a/weboob/tools/application/base.py +++ b/weboob/tools/application/base.py @@ -23,7 +23,7 @@ from optparse import OptionGroup, OptionParser from weboob.core.ouiboube import Weboob from weboob.tools.config.iconfig import ConfigError -from weboob.tools.backend import ObjectNotAvailable, ObjectNotSupported +from weboob.tools.backend import ObjectNotAvailable from weboob.tools.misc import iter_fields @@ -201,7 +201,7 @@ class BaseApplication(object): fields = [k for k, v in iter_fields(obj)] try: backend.fillobj(obj, fields) - except (ObjectNotAvailable, ObjectNotSupported), e: + except ObjectNotAvailable, e: logging.warning(u'Could not retrieve required fields (%s): %s' % (','.join(fields), e)) return obj diff --git a/weboob/tools/application/console.py b/weboob/tools/application/console.py index b01aaf62..70b9ab11 100644 --- a/weboob/tools/application/console.py +++ b/weboob/tools/application/console.py @@ -29,7 +29,6 @@ import sys from weboob.core import CallErrors from weboob.core.backends import BackendsConfig -from weboob.tools.backend import ObjectNotSupported from .base import BackendNotFound, BaseApplication from .formatters.load import formatters, load_formatter diff --git a/weboob/tools/backend.py b/weboob/tools/backend.py index c2721245..e1c8ae20 100644 --- a/weboob/tools/backend.py +++ b/weboob/tools/backend.py @@ -24,17 +24,13 @@ from logging import debug from weboob.capabilities.base import IBaseCap, NotLoaded -__all__ = ['BaseBackend', 'ObjectNotAvailable', 'ObjectNotSupported'] +__all__ = ['BaseBackend', 'ObjectNotAvailable'] class ObjectNotAvailable(Exception): pass -class ObjectNotSupported(Exception): - pass - - class BackendStorage(object): def __init__(self, name, storage): self.name = name @@ -222,9 +218,9 @@ class BaseBackend(object): if not missing_fields: return obj + assert obj in self.OBJECTS, 'The object of type %s is not supported by the backend %s' % (type(obj), self) + for key, value in self.OBJECTS.iteritems(): if isinstance(obj, key): debug(u'Fill %r with fields: %s' % (obj, missing_fields)) return value(self, obj, missing_fields) or obj - - raise ObjectNotSupported('The object of type %s is not supported by the backend %s' % (type(obj), self))