From 18c1f4692249c2f4eaedd75f55269e7e441f0374 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Tue, 1 Jul 2014 20:37:58 +0200 Subject: [PATCH] ability to override the flush() method --- weboob/tools/browser2/page.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/weboob/tools/browser2/page.py b/weboob/tools/browser2/page.py index 46938a81..fcd90744 100644 --- a/weboob/tools/browser2/page.py +++ b/weboob/tools/browser2/page.py @@ -654,7 +654,7 @@ class ListElement(AbstractElement): def __init__(self, *args, **kwargs): super(ListElement, self).__init__(*args, **kwargs) self.logger = getLogger(self.__class__.__name__.lower()) - self.objects = {} + self.objects = OrderedDict() def __call__(self, *args, **kwargs): for key, value in kwargs.iteritems(): @@ -676,11 +676,15 @@ class ListElement(AbstractElement): yield obj if self.flush_at_end: - for obj in self.objects.itervalues(): + for obj in self.flush(): yield obj self.check_next_page() + def flush(self): + for obj in self.objects.itervalues(): + yield obj + def check_next_page(self): if not hasattr(self, 'next_page'): return