From aeab3fac711531e655fb8b2a1fd41f29df09db29 Mon Sep 17 00:00:00 2001 From: Bezleputh Date: Sun, 22 Jun 2014 18:52:16 +0200 Subject: [PATCH] [json] handle format_collection --- weboob/capabilities/collection.py | 14 ++++++++++++++ weboob/tools/application/formatters/json.py | 3 +++ 2 files changed, 17 insertions(+) diff --git a/weboob/capabilities/collection.py b/weboob/capabilities/collection.py index 61b4d67b9e..72b7c07153 100644 --- a/weboob/capabilities/collection.py +++ b/weboob/capabilities/collection.py @@ -17,6 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . +from weboob.tools.ordereddict import OrderedDict from .base import IBaseCap, CapBaseObject, UserError, StringField, Field @@ -54,6 +55,19 @@ def parent_path(self): def path_level(self): return len(self.split_path) + def to_dict(self): + def iter_decorate(d): + for key, value in d: + if key == 'id' and self.backend is not None: + value = u'%s@%s' % (self.basename, self.backend) + yield key, value + + if key == 'split_path': + yield key, '/'.join(value) + + fields_iterator = self.iter_fields() + return OrderedDict(iter_decorate(fields_iterator)) + class Collection(BaseCollection): """ diff --git a/weboob/tools/application/formatters/json.py b/weboob/tools/application/formatters/json.py index b4800cede4..94b23e2be3 100644 --- a/weboob/tools/application/formatters/json.py +++ b/weboob/tools/application/formatters/json.py @@ -57,6 +57,9 @@ def flush(self): def format_dict(self, item): self.queue.append(item) + def format_collection(self, collection, only): + self.queue.append(collection.to_dict()) + class JsonLineFormatter(IFormatter): """ -- GitLab