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 --------------------------------------- # ------ 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) mechanize.Browser.__init__(self, history=history)
self.addheaders = [ self.addheaders = [
['User-agent', self.USER_AGENT] ['User-agent', self.USER_AGENT]
@ -129,6 +130,8 @@ class BaseBrowser(mechanize.Browser):
else: else:
self._cookie = None self._cookie = None
if parser is None:
parser = get_parser()()
self.parser = parser self.parser = parser
self.page = None self.page = None
self.last_update = 0.0 self.last_update = 0.0

View file

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