get_parser returns class instead of object

This commit is contained in:
Christophe Benz 2010-04-16 19:40:27 +02:00
commit f8e2016d59
2 changed files with 13 additions and 10 deletions

View file

@ -115,7 +115,8 @@ class BaseBrowser(mechanize.Browser):
# ------ Browser methods ---------------------------------------
def __init__(self, username=None, password=None, firefox_cookies=None, parser=get_parser(), history=NoHistory()):
def __init__(self, username=None, password=None, firefox_cookies=None,
parser=None, history=NoHistory()):
mechanize.Browser.__init__(self, history=history)
self.addheaders = [
['User-agent', self.USER_AGENT]
@ -129,6 +130,8 @@ class BaseBrowser(mechanize.Browser):
else:
self._cookie = None
if parser is None:
parser = get_parser()()
self.parser = parser
self.page = None
self.last_update = 0.0

View file

@ -26,23 +26,23 @@ __all__ = ['get_parser', 'NoParserFound']
class NoParserFound(Exception): pass
def load_lxml(*args, **kwargs):
def load_lxml():
from .lxmlparser import LxmlHtmlParser
return LxmlHtmlParser()
return LxmlHtmlParser
def load_html5lib(*args, **kwargs):
def load_html5lib():
from .html5libparser import Html5libParser
return Html5libParser(*args, **kwargs)
return Html5libParser
def load_elementtidy(*args, **kwargs):
def load_elementtidy():
from .elementtidyparser import ElementTidyParser
return ElementTidyParser()
return ElementTidyParser
def load_buildtin(*args, **kwargs):
def load_buildtin():
from .htmlparser import HTMLParser
return HTMLParser()
return HTMLParser
def get_parser(preference_order=['lxml', 'html5lib', 'elementtidy', 'builtin'], *args, **kwargs):
def get_parser(preference_order=['lxml', 'html5lib', 'elementtidy', 'builtin']):
"""
Get a parser from a preference order list.
This allows Weboob to run on systems without lxml, which is the default parser.