From 2f0b16b8ea82b09034dff0e747e29d89e97b5680 Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Sun, 20 Feb 2011 18:28:15 -0500 Subject: Tree builders now advertise their features. --- beautifulsoup/builder/_lxml.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'beautifulsoup/builder/_lxml.py') diff --git a/beautifulsoup/builder/_lxml.py b/beautifulsoup/builder/_lxml.py index c2f368c..f5cc242 100644 --- a/beautifulsoup/builder/_lxml.py +++ b/beautifulsoup/builder/_lxml.py @@ -5,13 +5,20 @@ __all__ = [ from lxml import etree from beautifulsoup.element import Comment, Doctype -from beautifulsoup.builder import TreeBuilder, HTMLTreeBuilder +from beautifulsoup.builder import ( + FAST, + HTML, + HTMLTreeBuilder, + TreeBuilder, + XML) from beautifulsoup.dammit import UnicodeDammit import types class LXMLTreeBuilderForXML(TreeBuilder): DEFAULT_PARSER_CLASS = etree.XMLParser + features = [FAST, XML] + @property def default_parser(self): # This can either return a parser object or a class, which @@ -79,6 +86,8 @@ class LXMLTreeBuilderForXML(TreeBuilder): class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML): + features = [FAST, HTML] + @property def default_parser(self): return etree.HTMLParser -- cgit v1.2.3 From 39a2b266b634aa2eca4329a6719e090087113f46 Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Sun, 20 Feb 2011 19:25:15 -0500 Subject: Added tests for the default builder registry. --- beautifulsoup/builder/_lxml.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'beautifulsoup/builder/_lxml.py') diff --git a/beautifulsoup/builder/_lxml.py b/beautifulsoup/builder/_lxml.py index f5cc242..4c7a826 100644 --- a/beautifulsoup/builder/_lxml.py +++ b/beautifulsoup/builder/_lxml.py @@ -9,15 +9,19 @@ from beautifulsoup.builder import ( FAST, HTML, HTMLTreeBuilder, + PERMISSIVE, TreeBuilder, XML) from beautifulsoup.dammit import UnicodeDammit import types +LXML = 'lxml' + class LXMLTreeBuilderForXML(TreeBuilder): DEFAULT_PARSER_CLASS = etree.XMLParser - features = [FAST, XML] + # Well, it's permissive by XML parser standards. + features = [LXML, XML, FAST, PERMISSIVE] @property def default_parser(self): @@ -86,7 +90,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML): - features = [FAST, HTML] + features = [LXML, HTML, FAST] @property def default_parser(self): -- cgit v1.2.3