From ff87ba23487fa46b3b9a4d9860e035626ea1a339 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Wed, 14 Apr 2010 10:25:18 +0200 Subject: [PATCH] fix parser when api is not 'etree' --- weboob/tools/parser/html5libparser.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/weboob/tools/parser/html5libparser.py b/weboob/tools/parser/html5libparser.py index a11dc488..8592fad5 100644 --- a/weboob/tools/parser/html5libparser.py +++ b/weboob/tools/parser/html5libparser.py @@ -25,8 +25,20 @@ except ImportError: from xml.etree import ElementTree class Html5libParser(HTMLParser): + """ + Parser using html5lib. + + Note that it is not available on every systems. + """ + + # Default implementation for each type of API. + defaults = {'etree': ElementTree, + } def __init__(self, api='etree'): - HTMLParser.__init__(self, tree=treebuilders.getTreeBuilder(api, ElementTree)) + # if no default implementation is defined for this api, set it to None + # to let getTreeBuilder() using the corresponding implementation. + implementation = self.defaults.get(api, None) + HTMLParser.__init__(self, tree=treebuilders.getTreeBuilder(api, implementation)) def parse(self, data, encoding): return HTMLParser.parse(self, data, encoding=encoding)