summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonard Richardson <leonard.richardson@canonical.com>2011-05-21 12:13:26 -0400
committerLeonard Richardson <leonard.richardson@canonical.com>2011-05-21 12:13:26 -0400
commit60630ce1ccd988bd449394c68d6eb817832c6e54 (patch)
tree82c3281741670be93789e77e122b18bb447f6bd1
parentfc53a81aa12a520af7144f17796c5d74c5aaff0a (diff)
More Python 3 compatibility.
-rw-r--r--bs4/builder/__init__.py2
-rw-r--r--bs4/builder/_html5lib.py10
-rw-r--r--bs4/builder/_lxml.py3
3 files changed, 8 insertions, 7 deletions
diff --git a/bs4/builder/__init__.py b/bs4/builder/__init__.py
index 222eb5b..e6d4fa1 100644
--- a/bs4/builder/__init__.py
+++ b/bs4/builder/__init__.py
@@ -247,7 +247,7 @@ def register_treebuilders_from(module):
# builder registrations will take precedence. In general, we want
# html5lib to take precedence over lxml, because it's more
# reliable. And we only want to use HTMLParser as a last result.
-from . import _htmlparser
+from .import _htmlparser
register_treebuilders_from(_htmlparser)
try:
from . import _lxml
diff --git a/bs4/builder/_html5lib.py b/bs4/builder/_html5lib.py
index d74c4b0..e9d7f58 100644
--- a/bs4/builder/_html5lib.py
+++ b/bs4/builder/_html5lib.py
@@ -102,18 +102,18 @@ class AttrList(object):
self.element = element
self.attrs = dict(self.element.attrs)
def __iter__(self):
- return self.attrs.items().__iter__()
+ return list(self.attrs.items()).__iter__()
def __setitem__(self, name, value):
"set attr", name, value
self.element[name] = value
def items(self):
- return self.attrs.items()
+ return list(self.attrs.items())
def keys(self):
- return self.attrs.keys()
+ return list(self.attrs.keys())
def __getitem__(self, name):
return self.attrs[name]
def __contains__(self, name):
- return name in self.attrs.keys()
+ return name in list(self.attrs.keys())
class Element(html5lib.treebuilders._base.Node):
@@ -155,7 +155,7 @@ class Element(html5lib.treebuilders._base.Node):
def setAttributes(self, attributes):
if attributes is not None and attributes != {}:
- for name, value in attributes.items():
+ for name, value in list(attributes.items()):
self.element[name] = value
# The attributes may contain variables that need substitution.
# Call set_up_substitutions manually.
diff --git a/bs4/builder/_lxml.py b/bs4/builder/_lxml.py
index 57798f6..07b2032 100644
--- a/bs4/builder/_lxml.py
+++ b/bs4/builder/_lxml.py
@@ -3,6 +3,7 @@ __all__ = [
'LXMLTreeBuilder',
]
+import collections
from lxml import etree
from bs4.element import Comment, Doctype
from bs4.builder import (
@@ -36,7 +37,7 @@ class LXMLTreeBuilderForXML(TreeBuilder):
if parser is None:
# Use the default parser.
parser = self.default_parser
- if callable(parser):
+ if isinstance(parser, collections.Callable):
# Instantiate the parser with default arguments
parser = parser(target=self, strip_cdata=False)
self.parser = parser