[Lxml-checkins] r44836 - in lxml/trunk: . src/lxml src/lxml/tests
scoder at codespeak.net
scoder at codespeak.net
Sun Jul 8 09:18:11 CEST 2007
Author: scoder
Date: Sun Jul 8 09:18:11 2007
New Revision: 44836
Modified:
lxml/trunk/CHANGES.txt
lxml/trunk/src/lxml/etree.pyx
lxml/trunk/src/lxml/tests/test_etree.py
Log:
support base_url kw arg in HTML() and XML()
Modified: lxml/trunk/CHANGES.txt
==============================================================================
--- lxml/trunk/CHANGES.txt (original)
+++ lxml/trunk/CHANGES.txt Sun Jul 8 09:18:11 2007
@@ -8,6 +8,8 @@
Features added
--------------
+* Support ``base_url`` keyword argument in ``HTML()`` and ``XML()``
+
* Extended type support for ``objectify.E`` based on registered PyTypes.
Supports an additional argument to ``PyType()`` that takes a conversion
function to strings to support setting text values from arbitrary types.
Modified: lxml/trunk/src/lxml/etree.pyx
==============================================================================
--- lxml/trunk/src/lxml/etree.pyx (original)
+++ lxml/trunk/src/lxml/etree.pyx Sun Jul 8 09:18:11 2007
@@ -1914,7 +1914,7 @@
return _elementTreeFactory(doc, element)
-def HTML(text, _BaseParser parser=None):
+def HTML(text, _BaseParser parser=None, base_url=None):
"""Parses an HTML document from a string constant. This function can be used
to embed "HTML literals" in Python code.
"""
@@ -1923,10 +1923,10 @@
parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
if not isinstance(parser, HTMLParser):
parser = __DEFAULT_HTML_PARSER
- doc = _parseMemoryDocument(text, None, parser)
+ doc = _parseMemoryDocument(text, base_url, parser)
return doc.getroot()
-def XML(text, _BaseParser parser=None):
+def XML(text, _BaseParser parser=None, base_url=None):
"""Parses an XML document from a string constant. This function can be used
to embed "XML literals" in Python code.
"""
@@ -1935,7 +1935,7 @@
parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
if not isinstance(parser, XMLParser):
parser = __DEFAULT_XML_PARSER
- doc = _parseMemoryDocument(text, None, parser)
+ doc = _parseMemoryDocument(text, base_url, parser)
return doc.getroot()
fromstring = XML
Modified: lxml/trunk/src/lxml/tests/test_etree.py
==============================================================================
--- lxml/trunk/src/lxml/tests/test_etree.py (original)
+++ lxml/trunk/src/lxml/tests/test_etree.py Sun Jul 8 09:18:11 2007
@@ -1435,6 +1435,18 @@
self.assertEquals(None, el.sourceline)
self.assertEquals(None, child.sourceline)
+ def test_XML_base_url_docinfo(self):
+ etree = self.etree
+ root = etree.XML("<root/>", base_url="http://no/such/url")
+ docinfo = root.getroottree().docinfo
+ self.assertEquals(docinfo.URL, "http://no/such/url")
+
+ def test_HTML_base_url_docinfo(self):
+ etree = self.etree
+ root = etree.HTML("<html/>", base_url="http://no/such/url")
+ docinfo = root.getroottree().docinfo
+ self.assertEquals(docinfo.URL, "http://no/such/url")
+
def test_docinfo_public(self):
etree = self.etree
xml_header = '<?xml version="1.0" encoding="ascii"?>'
More information about the lxml-checkins
mailing list