From b013828ad0a97f7155f892ee5d50d587d5842c98 Mon Sep 17 00:00:00 2001 From: Laurent Bachelier Date: Tue, 17 Jun 2014 00:44:43 +0200 Subject: [PATCH] browser2: Add a filter to change the base element used for selectors --- weboob/tools/browser2/filters.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/weboob/tools/browser2/filters.py b/weboob/tools/browser2/filters.py index 9e91a1c3..6b46d338 100644 --- a/weboob/tools/browser2/filters.py +++ b/weboob/tools/browser2/filters.py @@ -110,6 +110,20 @@ class Filter(_Filter): raise NotImplementedError() +class Base(Filter): + """ + Change the base element used in filters. + >>> Base(Env('header'), CleanText('./h1')) + """ + def __call__(self, item): + base = self.select(self.base, item) + return self.selector(base) + + def __init__(self, base, selector, default=_NO_DEFAULT): + super(Base, self).__init__(selector, default) + self.base = base + + class Env(_Filter): """ Filter to get environment value of the item.