bitbake: lib/bs4: Fix imports from html5lib >= 0.9999999/1.0b8
As of html5lib 0.9999999/1.0b8 (released on July 14, 2016), some modules have moved from _base to base. Handle this, while staying compatible with earlier versions. (Bitbake rev: 1679188f9c55c615cae780f2b5e6852dea9cf2ec) Signed-off-by: Daniel Lublin <daniel@lublin.se> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
1b4fa3f095
commit
5c1ad6852e
|
@ -15,7 +15,14 @@ from bs4.element import (
|
||||||
whitespace_re,
|
whitespace_re,
|
||||||
)
|
)
|
||||||
import html5lib
|
import html5lib
|
||||||
|
try:
|
||||||
|
# html5lib >= 0.99999999/1.0b9
|
||||||
|
from html5lib.treebuilders import base as treebuildersbase
|
||||||
|
except ImportError:
|
||||||
|
# html5lib <= 0.9999999/1.0b8
|
||||||
|
from html5lib.treebuilders import _base as treebuildersbase
|
||||||
from html5lib.constants import namespaces
|
from html5lib.constants import namespaces
|
||||||
|
|
||||||
from bs4.element import (
|
from bs4.element import (
|
||||||
Comment,
|
Comment,
|
||||||
Doctype,
|
Doctype,
|
||||||
|
@ -67,7 +74,7 @@ class HTML5TreeBuilder(HTMLTreeBuilder):
|
||||||
return '<html><head></head><body>%s</body></html>' % fragment
|
return '<html><head></head><body>%s</body></html>' % fragment
|
||||||
|
|
||||||
|
|
||||||
class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder):
|
class TreeBuilderForHtml5lib(treebuildersbase.TreeBuilder):
|
||||||
|
|
||||||
def __init__(self, soup, namespaceHTMLElements):
|
def __init__(self, soup, namespaceHTMLElements):
|
||||||
self.soup = soup
|
self.soup = soup
|
||||||
|
@ -105,7 +112,7 @@ class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder):
|
||||||
return self.soup
|
return self.soup
|
||||||
|
|
||||||
def getFragment(self):
|
def getFragment(self):
|
||||||
return html5lib.treebuilders._base.TreeBuilder.getFragment(self).element
|
return treebuildersbase.TreeBuilder.getFragment(self).element
|
||||||
|
|
||||||
class AttrList(object):
|
class AttrList(object):
|
||||||
def __init__(self, element):
|
def __init__(self, element):
|
||||||
|
@ -137,9 +144,9 @@ class AttrList(object):
|
||||||
return name in list(self.attrs.keys())
|
return name in list(self.attrs.keys())
|
||||||
|
|
||||||
|
|
||||||
class Element(html5lib.treebuilders._base.Node):
|
class Element(treebuildersbase.Node):
|
||||||
def __init__(self, element, soup, namespace):
|
def __init__(self, element, soup, namespace):
|
||||||
html5lib.treebuilders._base.Node.__init__(self, element.name)
|
treebuildersbase.Node.__init__(self, element.name)
|
||||||
self.element = element
|
self.element = element
|
||||||
self.soup = soup
|
self.soup = soup
|
||||||
self.namespace = namespace
|
self.namespace = namespace
|
||||||
|
@ -324,7 +331,7 @@ class Element(html5lib.treebuilders._base.Node):
|
||||||
|
|
||||||
class TextNode(Element):
|
class TextNode(Element):
|
||||||
def __init__(self, element, soup):
|
def __init__(self, element, soup):
|
||||||
html5lib.treebuilders._base.Node.__init__(self, None)
|
treebuildersbase.Node.__init__(self, None)
|
||||||
self.element = element
|
self.element = element
|
||||||
self.soup = soup
|
self.soup = soup
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue