diff --git a/weboob/capabilities/base.py b/weboob/capabilities/base.py index a84c4428..e4bb1d53 100644 --- a/weboob/capabilities/base.py +++ b/weboob/capabilities/base.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright(C) 2010-2011 Christophe Benz, Romain Bignon +# Copyright(C) 2010-2013 Christophe Benz, Romain Bignon, Julien Hebert # # This file is part of weboob. # @@ -389,3 +389,15 @@ class CapBaseObject(object): self._fields.pop(name) except KeyError: object.__delattr__(self, name) + + def to_dict(self): + def iter_decorate(d): + for key, value in d: + if key == 'id' and self.backend is not None: + value = self.fullid + yield key, value + + fields_iterator = self.iter_fields() + return OrderedDict(iter_decorate(fields_iterator)) + + diff --git a/weboob/tools/application/formatters/iformatter.py b/weboob/tools/application/formatters/iformatter.py index cae5612f..c44dd7ab 100644 --- a/weboob/tools/application/formatters/iformatter.py +++ b/weboob/tools/application/formatters/iformatter.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright(C) 2010-2011 Christophe Benz +# Copyright(C) 2010-2013 Christophe Benz, Julien Hebert # # This file is part of weboob. # @@ -48,7 +48,6 @@ else: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) from weboob.capabilities.base import CapBaseObject -from weboob.tools.ordereddict import OrderedDict from weboob.tools.application.console import ConsoleApplication @@ -173,7 +172,7 @@ class IFormatter(object): :type obj: CapBaseObject :rtype: str """ - return self.format_dict(self.to_dict(obj)) + return self.format_dict(obj.to_dict()) def format_dict(self, obj): """ @@ -185,23 +184,7 @@ class IFormatter(object): """ return NotImplementedError() - def to_dict(self, obj): - if not isinstance(obj, CapBaseObject): - try: - return OrderedDict(obj) - except ValueError: - raise TypeError('Please give a CapBaseObject or a dict') - - def iter_decorate(d): - for key, value in d: - if key == 'id' and obj.backend is not None: - value = obj.fullid - yield key, value - - fields_iterator = obj.iter_fields() - return OrderedDict(iter_decorate(fields_iterator)) - - + class PrettyFormatter(IFormatter): def format_obj(self, obj, alias): title = self.get_title(obj)